fix: 恢复抖音过期支付并完善原生状态确认
This commit is contained in:
@@ -79,3 +79,22 @@ npm run test:douyin 覆盖参数适配、旧调用入口、服务端确认、重
|
||||
编译成功,所选 10 项测试通过(含新增 7 项续付测试)。
|
||||
提交目标:后端 hashmall/hashmall 的 dev_douyin_tmp,App 为 charles/frontend-app 的 dev_codex。
|
||||
尚未部署或进行真机实付;以上测试均使用模拟渠道,不产生真实交易。
|
||||
|
||||
## 过期关单及支付安全修复(2026-09-09 第二次补丁)
|
||||
|
||||
本节覆盖前文旧续付补丁对“过期仍 pending”和“不关单”的行为描述。
|
||||
|
||||
- 后端先查单,过期且 NOTPAY 时请求渠道关单、再次确认,成功后结束本地支付与商品/充值订单。查单失败不放行。
|
||||
- `/payment/douyin/resume` 新增 reason:QUERY_FAILED、CLOSE_UNCONFIRMED、RECONCILIATION_REQUIRED、CHANNEL_PENDING;App 显示相应提示,不暴露后台密钥或完整渠道响应。
|
||||
- closed 解除缓存的旧支付单,用户确认后按当前页面重新请求支付;如果原商品订单已取消,需返回商品页重新下单。
|
||||
- 原生错误码不再被完全隐藏,但 SDK 错误/取消不能单独用于判断渠道订单已关闭。
|
||||
- 插件版本 0.2.0 新增 resetDypay。在服务端确认 paid/closed/unpaid 后重置 UTS/Swift 锁,恢复原生回调丢失场景。迟到回调不作为支付成功依据。
|
||||
- 续付请求超时 60 秒,查单 30 秒;其他请求默认值不变。
|
||||
|
||||
**本次修改了原生插件,必须重新打包 APK/IPA 或自定义基座;不要只对旧基座发布 WGT。**
|
||||
先更新后端 frontend/paycenter/job/mqconsumer 及实际承载退款的服务,再更新 App。
|
||||
无 SQL 迁移。历史已关闭但已收款的异常单保留人工核对,不自动恢复发货或重复付款。
|
||||
前端 `npm run test:douyin` 新增过期旧单放行、取消/切换账号、明确诊断、原生锁恢复等用例;测试不产生真实交易。
|
||||
最终验证:27 项前端支付测试全部通过;后端 41 项选定支付测试通过,包含真实 H2 事务回滚验证。
|
||||
HBuilderX 5.24 App 资源编译及导出成功(有既有 CSS 注释警告)。
|
||||
资源导出通过不代表 Android/iOS 原生构建或真机交易已验证,发布前仍须完成验收。
|
||||
|
||||
Reference in New Issue
Block a user