## 支付与查询时间
跳转支付的当前有效支付时间为3分钟。顾客应在3分钟内完成支付操作,超时后页面不应继续引导顾客支付该笔订单。
以页面成功跳转到支付渠道为开始时间,主动查询使用独立的结果确认窗口:
| 时间范围 | 系统行为 |
| ---------------- | ------------------------------------------------ |
| 跳转后0至30秒 | 每2秒查询一次 |
| 30秒至100~120秒 | 每5秒查询一次 |
| 100~120秒后 | 结束高频查询;没有最终状态时等待回调或转人工补查 |
主动查询窗口与3分钟支付有效期是两个概念,不能使用同一个超时配置。查询窗口结束仍无最终状态时,将订单更新为“结果未知”,禁止履约、退款或重新发起同一笔收款;之后到达的合法回调仍须正常处理。
## 退款异常查询
- 退款请求未返回最终状态时,前60秒每3秒查询一次;60秒后结束高频自动查询并转人工处理。
- 已明确返回退款处理中时,可以继续异步跟踪,最长5分钟;仍无最终状态时转人工核实。
- 原退款状态未明确失败前,不得使用新退款流水重复提交。
## 顾客真实公网IP
`X-Forwarded-For`应上送当前顾客手机设备的真实公网IP,不是商户服务器IP,也不是固定或随机地址。
商户后台只能信任由自有网关、负载均衡或可信CDN写入的代理头。外部客户端直接提交的同名请求头需要清洗,避免伪造。
## 密钥只留在服务端
- 终端号、终端密钥和签名逻辑只存在于商户后台。
- H5页面不接收终端密钥,不自行拼接可签名参数。
- 日志不得记录完整签名、密钥或包含敏感信息的完整跳转URL。
## 页面返回不是交易结果
`return_url`只控制页面去向。顾客可能关闭页面、重复返回或修改前端参数,因此商户页面只能展示本地后台已经确认的订单状态。
最终结果来自验签后的支付回调或**[查询接口](https://open.shouqianba.com/docs/payment/71?category_id=54)**。
## 回调与查询并发
支付回调和主动查询可能同时返回成功。数据库更新应检查订单当前状态,只有首次从非最终状态进入最终成功的请求才能创建履约任务。其余请求直接返回已有结果。