开发支付功能,遇到chooseWXPay fail问题,仔细检查后,支付目录配置正确,代码无问题,却一直无法成功调用接口,最终测试发现问题是由于
参数错误导致.
$('#chooseWXPay').on('click', function(){
wx.chooseWXPay({
timestamp: payObject.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: payObject.nonceStr, // 支付签名随机串,不长于 32 位
package: payObject.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: payObject.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: payObject.paySign,
success : function(res) {
// 支付成功后的回调函数
window.location.href = 'http://www.baidu.com';
}
});
});
在上面js代码中,package参数的值payObject.package=“prepay_id****”,后面的提交格式意思是整个package参数的格式是这种形式,换一句话说,
在进行paySIgn支付签名生成中,"prepay_id******"要参与,而不是后台通过统一下单接口返回的prepay_id(值为“*****”),之前一直没注意,也没想到,费了好多时间,希望对大家有帮助