fix: 隔离抖音当前支付订单与缓存旧单
This commit is contained in:
@@ -128,6 +128,19 @@ HBuilderX 5.24 App 资源编译及导出成功,仅有既有 CSS Autoprefixer
|
||||
本次只改 JavaScript、测试和文档,不改后端、原生插件、SQL、接口或页面样式。尚未真机实付。
|
||||
HBuilderX 5.24 App 资源编译与导出成功,只有既有 CSS Autoprefixer 注释警告。
|
||||
|
||||
## 当前订单与缓存旧单隔离(2026-09-10)
|
||||
|
||||
本节覆盖前文“点击支付先恢复账号缓存旧单”的说明。原逻辑会在取消 200 元订单后,购买其他 0.2 元商品时再次唤起 200 元旧单,必须移除。
|
||||
|
||||
- 与微信/支付宝一致,`prepareDouyinPay` 仅检查 App、登录、客户端可用性及正在进行的调用,不从账号缓存中选订单,不续付、不关单、不跳旧单结果页。
|
||||
- 商品结算、充值、订单详情仍分别调用现有业务接口,以本次接口返回的数据调用 `appDypayFun`,旧单不再拦截当前下单。
|
||||
- 只有当前响应 `payment.orderNum` 与缓存订单号完全一致时才查单续付;缓存属于另一单时,验证当前签名参数,释放残留客户端回调,再调用当前订单的 SDK 参数。金额和签名不在客户端改写。
|
||||
- 成功/失败继续使用微信/支付宝的现有结果页,不新增弹窗。实际尚在运行的 SDK 调用仍防重复点击;迟到的旧回调不得处理新订单。
|
||||
- 缓存只用于最近一次支付的 App 恢复,不是用户待支付订单清单。新支付发起后恢复记录指向新订单;旧订单仍保留在服务端,由回调、定时查单、订单详情处理,不自动关单或标记失败。若新参数无效/初始化失败,旧恢复记录不覆盖。
|
||||
|
||||
验证:`node --test tests/douyin-integration.test.cjs tests/douyin-uts.test.cjs`(需设置下节所述 HBUILDERX_HOME)51 项通过。新增测试经过真实前端 API 包装函数验证商品结算、充值和订单补付的当前响应,SDK/服务端均使用模拟数据,不产生真实交易。HBuilderX 5.24 App 资源编译、导出通过,仅有既有 CSS 注释警告。
|
||||
本次仅修改 `utils/douyin-pay.js`、回归测试和文档,无后端、SQL、接口、原生插件变更。仍需真机验收“200 元取消 → 0.2 元支付”的收银台金额与订单归属;不能把模拟测试当作实付验证。
|
||||
|
||||
## 双端 UTS 编译兼容(2026-09-10,插件 0.2.1)
|
||||
|
||||
基于用户确认的远端 `dev_codex` / `3e2e182`,不改变支付页面或后端逻辑。
|
||||
|
||||
Reference in New Issue
Block a user