微信支付遇到的缺少参数问题

最近工作还是比较忙的,好就想继续更新下博客。现在是2018-11-1 20:40,刚忙完项目,趁着记忆还清晰就把现在的项目遇到的问题记录一下;

微信支付 提示JSAPI缺少参数:

微信支付遇到的缺少参数问题_第1张图片

调用的方法代码是:

   wx.chooseWXPay({
            appId:data.pay_parameters.appId,
            timestamp: data.pay_parameters.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
            nonceStr: data.pay_parameters.nonceStr, // 支付签名随机串,不长于 32 位
            package: data.pay_parameters.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
            signType: data.pay_parameters.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
            paySign: data.pay_parameters.paySign, // 支付签名
            success: function (res) {
            // 支付成功后的回调函数
               vm.ispayed = false//已支付
               vm.showOrderInfo()
              }
          });

这个是我更改参数形式之后的代码,错误就出现在这里。微信JS-SDK接口注释说支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符。原来啊,timestamp字段均为小写,我之前是直接拿的后台返回的参数塞进去的,由于S大写导致了接口调用失败。
下图是我alert出的直接拿后台参数使用的数据,可见S为大写
微信支付遇到的缺少参数问题_第2张图片

你可能感兴趣的:(技术类)