MatchMaster/docs/CoinMadness支付联调当前约定.md

26 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CoinMadness 支付联调当前约定
核对日期:2026-09-30,客户端基准 7e14f661。[接入差异](GoldMiner接入说明.md) · [仓库后端 V1.7](../server/laf-cloud/functions/goldMiner/FRONTEND-API.md)
## 客户端实际行为
- 每次有效购买先读取 info,验证期次、purchasable 和有效 priceFen。商品取 productId,数量 1,价格单位为分。
- 原生下单走 wx/orderPaySig 或 wx/iosorderPaySig,携带新的 createRequestId、itemid、itemCount、itemPrice;验证返回 outTradeNo、signData、signature、paySig 后原样拉起微信支付。
- 每次有效购买生成新请求编号,本地同一期订单被本次尝试替换。服务端可能复用该期订单,新请求不保证新的服务器订单;被替换的旧本地记录不再参与自动恢复。
- iOS 且 iosCanPay=false 时走 Utils.GoKEFu。它本地生成订单号和 sessionFrom,传 price、payment_name、payment_count 打开客服;GoldMinerService 收到生成订单号后单独持久化。当前不调用 goldMiner/index 的 create_order。
- iOS 原生明确返回错误码 16 且非取消时,重新校验活动后回退 GoKEFu;Android、其他错误、超时和客服失败不循环回退。
- 微信客户端成功回调或客服会话打开,只会启动查单。成功须后端返回 pay_state=2、rewardDelivery=goldMiner.claim 和 goldMiner 权益元数据。
- 无 errorCode 且 code=0、data.pay_state=1、msg=充值未成功的响应按 PAYMENT_PENDING 处理。显式错误码优先。
- 支付后最多查四次,快速重试间隔为 1.5/3/4.5 秒,限 PAYMENT_PENDING 或 NETWORK_UNKNOWN。未确认时保留恢复状态;切后台、关闭面板会停止高频查单。
- 自动恢复只查询当前账本中未完成、非 cancelled 的订单。购买仅解锁,不直接加金币;跨期权益不一定解锁当前期。
## 需要与部署端确认
仓库后端 V1.7 的客服链路要求 create_order 返回签名 sessionFrom;当前 GoKEFu 与之不同。后端还存在同期订单复用和 PAYMENT_CHANNEL_CONFLICT 约束。应验证客服转单关联、错误码 16 回退、取消重试及跨期权益,不能将前端路径存在视为线上已兼容。
当前 testHttpip 与 httpip 相同。真机测试前确认实际请求环境和支付签名环境,不能按开发版/体验版名称判断隔离。
## 验证
check-api.cjs 在 2026-09-30 合并后通过;check-payment-retry.cjs、check-api-v15.cjs、check-ios-payment-fallback.cjs 是现存离线检查入口,本次文档核对未重跑。真实付款、客服交互和线上权益确认尚需真机验收。已删除的 check-test-tools.cjs 不再作为验证入口。