# 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 不再作为验证入口。