微信支付 JSAPI 的跨平台兼容做得非常诡异,有些问题在 Android 上不会出现,但在 iOS 上会出现。
调用支付 JSAPI 缺少参数 timeStamp
虽然我们一般都用 long 来存储 timestamp,但微信支付这个 timeStamp 参数应该是 string 类型。
如果你遇到了 调用支付 JSAPI 缺少参数 timeStamp 的问题,建议你检查一下你的 timeStamp 参数是否是 string 类型。
当前页面的 URL 未注册
这个问题通常发生于是 SPA,似乎 iOS 微信的 webview 捕捉不到 browser router 的路径变化,即使你进入了已经注册到微信支付的 URL,webview 仍然会判定你在初次打开页面的 URL。
因此要在 iOS 上拉起微信支付,你需要使用 window.location.href 跳转页面,而不是使用 browser router 跳转页面。
