收藏
回答

微信支付V3的 JSAPI,一直提示 get_brand_wcpay_request:cancel

页面js:

WeixinJSBridge.invoke('getBrandWCPayRequest', {

                appId: result.appid, // 公众号名称,由商户传入

                timeStamp: result.timestamp, // 时间戳,自1970年以来的秒数

                nonceStr: result.noncestr, // 随机串

                package: result.packageValue,

                signType: "RSA", // 微信签名方式

                paySign: result.sign // 微信签名

            }, (res) => {

                alert(JSON.stringify(res));

                this.$hideLoading()

                if(res.err_msg === 'get_brand_wcpay_request:ok') {

                    // 使用以上方式判断前端返回,微信团队郑重提示:

                    //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。

                    

                }

            })

回答关注问题邀请回答
收藏

2 个回答

  • 支付社区运营-Tasting
    支付社区运营-Tasting
    2021-03-08

    你好, 请按照以下两点检查:

    1)package参数格式错误,package参数格式应该是这样:package:"prepay_id=wx201612032137789b201de80e0661234657"

     2)package参数没有获取,返回null,请仔细检查统一下单参数是否正确。统一下单参数正确,才会正确返回prepayid


    2021-03-08
    有用
    回复 1
    • temir
      temir
      2021-03-08
      package有值的,看上面的截图
      2021-03-08
      回复
  • Memory
    Memory
    2021-03-09

    「get_brand_wcpay_request:cancel」是用户在支付过程中取消,你只处理成功,取消和网络异常类你就不处理吗?

                 if (resp.err_msg === 'get_brand_wcpay_request:ok') {
                    Toast('微信支付成功')
                            _this.$router.go(-2);
                      } else if (resp.err_msg === 'get_brand_wcpay_request:cancel') {
                        Toast('用户取消支付')
                                _this.$router.go(-1);
                      } else if (resp.err_msg === 'get_brand_wcpay_request:fail') {
                        Toast('网络异常,请重试')
                                _this.$router.go(-1);
                      }
                 
    
    2021-03-09
    有用 1
    回复
登录 后发表内容
问题标签