收藏
回答

使用weixin-js-sdk的jsapi微信内调支付安卓无法支付?

ios可以正常支付

   fetchJsConfig () {

      OrderAction.fetchWxSDK()

        .then(data => {

          let params = {}

          params.debug = false

          params.appId = data.data.jsapi.appId

          params.timestamp = data.data.jsapi.timestamp

          params.nonceStr = data.data.jsapi.nonceStr

          params.signature = data.data.jsapi.signature

          params.jsApiList = ['chooseWXPay']

          params.url = data.data.jsapi.url

          alert(params.timestamp)

          wx.config(params)

          wx.ready(function (res) {

            // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

            alert('验证成功')

            console.log(res)

          })

          wx.error(function (res) {

            // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

            alert('验证失败')

            console.log(res)

          })

        })

        .catch(err => console.log(err))

    },

  wxChooseWXPay (wxObj) {

      let that = this

      wxObj = JSON.parse(wxObj)

      console.log('支付参数'wxObj)

      wx.chooseWXPay({

        'nonceStr': wxObj.nonceStr// 支付签名随机串,不长于 32 位

        'package': wxObj.package// 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)

        'paySign': wxObj.paySign// 支付签名

        'signType': wxObj.signType// 签名方式,默认为'SHA1',使用新版支付需传入'MD5'

        'timestamp': wxObj.timeStamp// 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

        success: function (res) {

          that.$router.push('/pay/success')

        },

        cancel: function (res) {

          that.$router.push('/pay/fail')

        }

      })

    }


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

1 个回答

登录 后发表内容
问题标签