Skip to content

上线验收与常见问题 ​

后台与环境 ​

  • [ ] 商户及应用启用,密钥只保存在商户服务端。
  • [ ] 支付通道、渠道参数、费率、限额正确,上游产品权限已开通。
  • [ ] 收银台、网关 HTTPS 可达,静态资源及 API 代理路径正确。
  • [ ] JSAPI 授权域名、应用身份及渠道配置齐全,扫码场景不误要求 JSAPI 身份。
  • [ ] 数据库、业务 Redis、队列 Redis、共享存储符合部署文档,查单/通知/过期任务运行。
  • [ ] 结算分账策略确认,未开放能力不作为上线依赖。

商户系统验收 ​

验收项预期
正确签名 / 修改金额仍用旧签名正常通过 / 篡改被拒绝
中文、0、false、空串、JSON 扩展签名一致,不丢失 0/false
下单 code=0、orderState=0/1不发货,等待最终结果
支付成功通知验签,核对单号/金额/币种,提交事务后返回纯文本 SUCCESS
同一通知并发、重复或延迟仅入账或发货一次
断连、超时、上游未知原单查询,不创建第二笔扣款
返回页先到、通知后到从商户服务端获取结果,不仅按跳转参数发货
退款受理 state=1查询原退款单,state=2 才确认完成
通知不可达后恢复支持重发与主动查单补偿
跨商户查单被拒绝;同商户内按实际查询范围设计权限

支付和退款查询当前按商户归属校验,不额外按 appId 隔离同商户订单。调用应用仍需认证通过并属于该商户。

收银台专项 ​

  • [ ] 普通浏览器、微信、支付宝打开测试链接,可用项符合开通产品及环境。
  • [ ] API 返回 payurl;商户端测试二维码打开的是原订单链接。
  • [ ] 金额、状态正确,选择页不展示商户名称及渠道标识。
  • [ ] 二维码、图片、钱包链接、Bridge 按返回类型处理;Scheme 被阻止时可手动操作。
  • [ ] 刷新恢复原展示,重复点击对应同一笔渠道支付,不能换项重复扣款。
  • [ ] 过期、关闭、成功停止展示支付信息,支付中不能本地取消。
  • [ ] 授权失败、支付失败、退出钱包、未知结果均有明确提示。

常见问题 ​

code=0 为什么没有支付成功? ​

只表示接口受理成功。下单看 orderState,查询看 state,支付成功为 2。收银台 confirm 还要检查内层 code。

超时能生成新单号重付吗? ​

先查询原单。超时可能发生在渠道已受理之后,直接换号会形成重复支付。

收银台没有支付方式? ​

检查订单是否仍为状态 0、是否过期、创建时有无候选通道,以及当前渠道、应用配置和环境。不在前端写死选项绕过服务器校验。

可以打开链接却不能自动唤起钱包? ​

浏览器限制 Scheme、跨应用跳转及用户手势,JSAPI 还需要钱包环境及身份。保留二维码或手动入口,最终结果以服务端为准。

退款没有通知? ​

当前 notifyUrl 仅保存,商户退款通知尚未实现。必须使用退款查询。

如何排查验签失败? ​

检查环境、应用密钥、全部实际发送的非空参数、忽略大小写排序、原始中文和 JSON 文本。签名前不做 URL 编码;响应验签 data,通知验签全部非空字段。不把密钥或含密钥的签名原文贴到公开日志。

接口行为以当前 payment 实现为准。示例商户号与密钥均为虚构。