问题描述
- 支付目录和签名应该都是对的,因为 iOS 支付正常
- 安卓调用 JS SDK 微信扫码 API,正常
- 安卓支付页没有报签名的错误,就是点击支付的时候报错:chooseWXPay:permission denied
- 于是尝试使用 checkJsApi 检测一下( checkJsApi 已添加到 jsApiList 里) chooseWXPay,结果报错:chooseWXPay permission denied
- 还有一个值得注意的问题是,点击右上角的菜单按钮,只有「收藏,搜索页面内容,刷新,顶置」等基础按钮,没有「发送给朋友,分享到朋友圈」功能按钮( iOS 正常)
代码逻辑
- 单页面应用,使用的 history 路由模式
- 进入支付页后,首先获取签名(签名的 URL 是 window.location.href ),然后执行 wx.config({xxx})
- 用户点击支付按钮,调用 wx.chooseWXPay({xxx})
- 微信正常,能调起微信支付弹窗。安卓报错 chooseWXPay:permission denied
之前踩过的坑
SPA,单页面应用,iOS 端微信获取签名的时候,URL 不能是当前的 URL,而是第一次进入微信时的 URL