Files
frontend-app/docs/douyin-ios-return-20260911.md
T

27 lines
3.0 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.
# iOS 抖音支付回跳修复(2026-09-11)
基于 `charles/frontend-app` 的 `dev_codex` / `355ad11`。用户已确认在实际 iPhone 上打开 `trustbridgeapp://` 可以唤起商城。
## 发现与修改
该基线已经在 manifest.json 和 info.plist 注册了 trustbridgeapp,但支付初始化又默认传入 `https://app.tbmall.xin/uni-universallinks/__UNI__4910728/`。项目所带 DypaySDK 的 DypayAPI.h 明确说明:有 Universal Link 时优先使用它,降级使用 Scheme。
2026-09-11 10:48—10:49(北京时间)外网 GET 检查发现,该域名的 `/.well-known/apple-app-site-association` 和 `/apple-app-site-association` 都返回 HTTP 200、Content-Type text/html,正文是官网首页,不是 Apple 关联 JSON。默认回跳 URL 本身同样返回官网首页。缺少有效关联文件的链接不能作为已经验证可唤起 App 的 Universal Link;本次没有取得手机日志,不能把网络检查等同于具体真机失败路径的证明。
- iOS 支付初始化固定使用宿主已注册且用户实测有效的 `trustbridgeapp`,不带 `://`。支付接口里的回跳 Scheme 和 Universal Link 不覆盖该值;支付单号、金额、签名参数保持原值。
- 移除抖音支付入口对 Universal Link 的默认传入。Android 保留原有 Scheme 选择,Android 原生初始化仍只使用 appId。
- iOS 桥接收到空 Universal Link 时,调用官方两参数 `register(withAppID:callbackScheme:)`。插件的显式非空 Universal Link 调用仍保留三参数 API,便于其他已验证宿主使用。
- 插件升级至 0.2.2。已有 UTSiOSHookProxy 的 URL/Universal Link 回调接收、App.onShow 查单及服务端确认后跳转成功页继续沿用。不以 URL 回跳本身判断支付到账。
本次不修改微信、支付宝的 Universal Link 配置、后端、SQL 或业务接口,也不部署 AASA 文件。
## 验证与发布
`node --test tests/douyin-integration.test.cjs tests/douyin-uts.test.cjs`(设置 HBUILDERX_HOME)53 项通过。新增测试验证 iOS 遇到错误 Scheme、带 `://` 的 Scheme 和两种 Universal Link 字段时仍注册正确宿主 Scheme,且签名参数不变、成功仍以服务端查单为准;Android 原有选择行为保留。
UTS 测试将实际共享 UTS 转译为 JS 运行,不是原生 Swift 编译。当前 Windows 无 Xcode,完整 IPA 编译和真机回跳需要发布端验证。
HBuilderX 5.24 `cli publish --platform APP --type appResource` 于 10:51:59 编译、导出成功,只有既有 CSS Autoprefixer 注释警告。资源导出成功不代表完整 IPA 原生构建通过。
发布必须重新云打包并安装完整 IPA 或自定义基座;只有 WGT 无法更新本次 Swift 原生修改。安装后验收支付成功、取消、手动返回 App、杀进程恢复,以及确认到账后只跳转一次支付成功页。若仍不能从抖音返回,请保留该包的构建版本和真机 SDK 日志继续定位,不通过直接标记支付成功绕过查单。