小程序web-view嵌套H5,支付时H5页面跳转回小程序唤起支付功能,payData数据是从公众号获取传入,代码未作更改,前两天可以支付成功,今天测试的时候直接提示:商户传入的appid参数不正确,请联系商户处理。
回调信息为:{errMsg: "requestPayment:fail cancel"}
代码如下:
onLoad: function (options) {
console.log("webview传过来的参数", options)
this.wxPay(options.payDataStr);//options.payDataStr由h5跳转小程序带过来的数据,用的公众号的支付数据
},
methods: {
// 唤起微信支付窗口
wxPay: function(res) {
let payData = JSON.parse(res)
// console.log('res:'+res)
wx.requestPayment({
'timeStamp': payData.timeStamp,
'nonceStr': payData.nonceStr,
'package': decodeURIComponent(payData.package),
'signType': payData.signType,//'MD5',
'paySign': payData.paySign,
'success':function(res){
// 成功跳转到h5结果页面
console.log('支付成功')
console.log(res);
wx.redirectTo({
url: '/pages/activites/store?flag=ok'
});
},
'fail':function(res){
// 失败提示并返回订单页
console.log('支付失败')
console.log(res);
wx.redirectTo({
url: '/pages/activites/store?flag=ok'
});
},
'complete': function(res){
// 较早版本,用户取消支付,不进入fail回调,仅回调complete
// res.errMsg为requestPayment:fail cancel
if(res.errMsg=='requestPayment:fail cancel') {
// 用户取消返回订单页
wx.redirectTo({
url: '/pages/activites/store?flag=ok'
});
}
}
})
}
}
小程序web-view里不支持通过jssdk唤起微信支付,推荐从webview跳转到小程序页面里,使用小程序的支付api完成支付
const url = `/pages/activites/weipay?payDataStr=${payDataStr}`;
wx.miniProgram.navigateTo({url: url})
这个做的跳转weipay页面
appid用的是公众号的吗