全球收单 › 指南
解码 → 报价 → 支付的完整调用序列,含三种失败的处置。
解码、报价与支付
解码
POST /v1/qrpay/decode { "raw": "<扫到的字符串>" }
返回:这是哪家的码、收款方是谁、金额是固定的还是要用户输入。
认不出就是认不出,返回错误。别在你这边做「模糊匹配」——猜错的代价是钱付给了另一个商户。
报价
POST /v1/qrpay/quotes
按会员的每一种可支付资产各给一份报价。每份里有:付多少那种资产、收款方收到多少法币、汇率、费用。
幂等键每次换新(与报价的通例一致)。
支付
POST /v1/qrpay/payments
{ "quote_id": "…", "step_up_ticket": "…" }
三种失败与它们的处置
| 返回 | 意思 | 你该做什么 |
|---|---|---|
| 4xx 业务错误 | 明确失败,钱没动 | 按 code 给用户人话 |
| 504 / 网络错误 | 结果不明 | 别当失败 —— 用同一把键重试,或查询订单 |
| 5xx | 我方的问题 | 带 request_id 报给我方 |
⚠ 第二种最要紧。
payments的网络层失败不是失败 ——我方可能已经锁了钱并通知了上游。当失败处理(比如提示用户「支付失败请重试」)
的表现是他付了两次。