## 商户与小程序关系
支付测试前,正式商户和目标小程序`appid`的关系必须配置完成。`extended.sub_appid`应填写这一个已配置的小程序`appid`。
如果商户与小程序不是同一主体,应提前确认是否需要联合运营或其他授权关系。不要通过更换`appid`或复用其他项目参数绕过配置。
## openid归属
`payer_uid`使用当前顾客在`extended.sub_appid`所指小程序下的`openid`。其他公众号、其他小程序或其他`appid`下取得的`openid`不能混用。
建议在创建订单时同时保存`appid`和`openid`来源,便于排查用户标识不匹配。
## 支付和查询时长
预下单订单的有效支付时间为4分钟。主动查询用于确认结果,时间窗口可以延伸到第6分钟:
- 预下单成功5秒后开始查询。
- 第0至1分钟,每3秒查询一次。
- 第1至5分钟,每10秒查询一次。
- 第6分钟执行最后一次查询。
最后一次查询仍不是明确成功或失败时,将订单更新为“结果未知”,不得履约或重新发起扣款。
## 退款异常查询
- 退款请求未返回最终状态时,前60秒每3秒查询一次;60秒后结束高频自动查询并转人工处理。
- 已明确返回退款处理中时,可以继续异步跟踪,最长5分钟;仍无最终状态时转人工核实。
- 原退款状态未明确失败前,不得重复提交。
## 前端结果仅用于展示
`wx.requestPayment`的`success`、`fail`和`complete`回调只描述本次前端调用。网络中断、页面关闭或支付渠道处理延迟都可能造成前端状态与交易状态不同。
小程序页面应从商户后台读取订单状态;商户后台只接受验签后的支付回调和**[查询接口](https://open.shouqianba.com/docs/payment/71?category_id=54)**结果作为交易依据。
## 手机真实公网IP
预下单请求的`X-Forwarded-For`应上送当前顾客使用小程序的手机设备真实公网IP。商户后台应从自有可信代理链获取,不能使用服务器IP、固定值或未经校验的客户端请求头。
## 参数和密钥边界
- 小程序只接收`wap_pay_request`和商户订单展示数据。
- `terminal_key`、退款参数和服务端签名逻辑不得下发小程序。
- `wap_pay_request`应原样用于当前订单,不跨订单、顾客或`appid`复用。