联调与上线
验证方式
顽兔不设独立联调环境,接入验证直接在生产完成。开发阶段用正式凭据随意下单调试, 不产生任何费用——不支付的订单超时自动关闭;到验证支付链路这一步,真实付 0.01 元, 验完调退款把钱收回。
base_url 与凭据放环境变量或配置中心,不要写死在代码里:
本地调试回调
回调地址需要公网可达。本地开发时用内网穿透工具,把生成的公网地址填到商户后台「接入配置 → 支付回调」,点「保存配置」:网关会先向这个地址发一条 webhook.ping 测试回调,收到 2xx 才生效,没通的话页面会说明原因(解析不了、连不上、返回了什么状态码)。穿透地址变了自己改,想单独验一下,点地址旁边的「测试地址」,只发测试、不改配置。
收不到回调时的排查顺序:先调查单接口确认支付状态。状态是 paid 说明支付正常,
问题出在回调链路,再检查穿透工具和本地服务;状态不是 paid 说明支付本身没完成。
上线前用例
至少走一遍以下用例再上线:
- 下单,扫码支付,收到
order.paid回调,订单入账 - 同一回调重复送达(可以重启本地服务触发重试),确认不会重复入账
- 下单后不支付,等待超时,查单确认状态为
closed - 下单后不支付,调关闭订单接口,查单确认状态为
closed;再关一次仍返回closed - 退款:受理应答是
processing(退款需在商户后台审批),到商户后台批准后确认收到refund.succeeded回调 - 停掉本地服务下单支付,恢复后确认回调补达或查单兜底生效
- 用「按单指定」回调的:每个站各下一单付掉,确认
order.paid发到了各自的notify_url; 再故意漏传一次notify_url,确认下单直接被拒(40004),而不是发到别的地方