Skip to content

幂等规则

更新时间: 2026-09-08 14:00

创建订单前,商户系统需要先生成并保存 merchantOrderNo。它是商户侧唯一订单号: 同一个商户编号下,一个 merchantOrderNo 只能代表一笔真实业务订单。 后续查单、对账、Webhook 关联,以及创建结果不确定后的重试,都继续使用这个订单号。

场景平台处理商户应处理
首次使用某个 merchantOrderNo 创建订单创建订单,并返回平台订单号和当前 status保存 merchantOrderNoplatOrderNo 和订单状态,后续按 status、查单或 Webhook 判断业务结果
同一商户、同一 merchantOrderNo,且业务参数一致不新建订单,返回首次受理订单的当前状态和原平台订单号当作同一笔订单的状态回读,不要重复记账、发货、补款或出款
同一商户、同一 merchantOrderNo,但业务参数不一致返回 HTTP 409MERCHANT_ORDER_NO_CONFLICT停止重试,检查是否误用了订单号;如果是新的真实业务订单,必须使用新的 merchantOrderNo

如果创建结果还没确认,不要通过更换商户订单号来重新下单。代付请求尤其要谨慎,因为首次请求可能已经进入扣款或出款处理。

如果用户连续发起三次 100 元充值,应生成三个不同的商户订单号,例如 PAY_001PAY_002PAY_003。金额、商品或收款人相同,不代表可以复用订单号。只有同一笔业务订单因为超时、 断连或响应无法验证而需要恢复时,才继续使用原 merchantOrderNo

幂等重复请求不会更新既有订单。响应保持首次受理创建请求保存的业务字段和 customData 数据,后续请求中的字段不会合并或覆盖首次保存的数据。

创建类业务请求不得自动或并发重试。HTTP 客户端也应配置成由业务系统明确发起每一次创建请求;确实需要重试时, 必须先完成查单,且订单标识和业务字段必须不变。