ENGINEERING NOTE 35 / 50 · CARD
报价币种、扣款币种和清算币种不要混用
一次付款可能涉及多个币种。每个金额都应与币种一起保存,不能只展示无标签数字。
本文由 OPEN RAMBO 发布。工程方案和伪代码用于说明设计,不是现有产品 API 文档;示例数字均为演示。
建模多种金额
在适用时分别保存商户展示金额、卡片扣款金额和账本换算。结账时换算估计不一定是最终清算金额。记录汇率报价来源与时间。
费用单列说明
换汇费用应与汇率影响区分。不能把所有差额叫商户隐藏费用。依据真实账单或处理记录解释,估算必须标明。
保留退款币种上下文
退款可能使用后来的换算环境。关联原交易,并按实际收到币种报告金额。产品条款无支持时,不能承诺换算后金额完全相同。
示意流程
amount = {"value_minor":1000, "currency":"USD"}
converted = {"value_minor":None, "currency":"EUR", "status":"not_final"}如何验收
测试不同币种报价清算及后续退款,任何金额都不能缺少币种标签。