ENGINEERING NOTE 28 / 50 · CARD
如何把部分退款关联回原卡片交易
退款属于原交易,即使数日后到达或使用不同事件号。账本和用户界面都应保留关联。
本文由 OPEN RAMBO 发布。工程方案和伪代码用于说明设计,不是现有产品 API 文档;示例数字均为演示。
使用交易引用
优先使用处理系统提供的原交易引用。仅按金额和日期匹配可能关联错购买。引用缺失时进入明确核对流程,不静默猜测。
跟踪累计退款
一笔扣款可有多次部分退款。每次退款事件去重,再以同币种比较累计金额与可退清算金额。费用和汇兑调整可能需独立流水,不修改原扣款。
解释退款去向
告知退款进入哪张卡或哪个账本,以及是否完成。商户确认退款不一定证明接收账本已入账。待处理和已完成应清晰区分。
示意流程
net_purchase = settled_amount - sum(unique_completed_refunds)
# Match by original transaction reference, not amount alone.如何验收
测试两笔同金额交易及只针对其中一笔的部分退款,必须关联正确原单。