V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zaxlct
V2EX  ›  前端开发

H5 JS SDK 微信支付报错: chooseWXPay:permission denied,但是 iOS 正常

  •  
  •   zaxlct · 2018-03-16 11:47:52 +08:00 · 3184 次点击
    这是一个创建于 2478 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题描述

    • 支付目录和签名应该都是对的,因为 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

    3 条回复    2018-03-28 14:52:49 +08:00
    tmkook
        1
    tmkook  
       2018-03-16 11:54:13 +08:00   ❤️ 1
    wx.config 没成功,具体到微信开发工具里看效果吧
    zaxlct
        2
    zaxlct  
    OP
       2018-03-16 11:59:31 +08:00
    还有一个很大的疑问:
    点击右上角的菜单按钮,只有「收藏,搜索页面内容,刷新,顶置」等基础按钮,没有「发送给朋友,分享到朋友圈」功能按钮( iOS 正常)
    zaxlct
        3
    zaxlct  
    OP
       2018-03-28 14:52:49 +08:00
    已经解决:跳转到支付页时,不用用 history 跳转。需要用 a 标签 或者 location.href
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3021 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:12 · PVG 08:12 · LAX 16:12 · JFK 19:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.