一。
url传入当前页面url地址或者微信公众平台配置的域名根目录,使用window.location.href方法获取,
二。
下面代码请结合微信公众号开发文档
微信公众号开发文档
function test(url,) {
uni.request({
url: cfg.originUrl + ‘/wx/mp/js_sig.do’, //这里请求后端获取签名验证什么的
data: {
route: url //url传入当前页面url地址或者微信公众平台配置的域名根目录,使用window.location.href方法获取,
},
method: ‘GET’,
success: (res) => {
// alert(JSON.stringify(res.data));
jweixin.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.data.appId, // 必填,公众号的唯一标识
timestamp: res.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
signature: res.data.signature, // 必填,签名
jsApiList: [‘chooseWXPay’] // 必填,需要使用的JS接口列表
});
jweixin.ready(function() {
// console.log('我要支付啦');
// config信息验证后会执行ready方法
uni.request({
url: cfg.originUrl + "/wx/pay/init.do",
method: 'POST',
header: {
'Content-type': "application/x-www-form-urlencoded",
},
data: JSON.stringify(data),
success: function(res) {
// alert(JSON.stringify(res.data));
if (!res.data.ok) {
alert('下单失败');
} else {
// alert("下单成功");
uni.setStorageSync('order', res);
}
jweixin.chooseWXPay({
timestamp: res.data.payParams.timeStamp, // 支付签名时间戳
nonceStr: res.data.payParams.nonceStr, // 支付签名随机串
package: res.data.payParams.package, // 接口返回的prepay_id参数
signType: res.data.payParams.signType, // 签名方式
paySign: res.data.payParams.paySign, // 支付签名
success: function(e) {
alert("支付成功");
// alert(JSON.stringify(e)); // 支付成功后的回调函数
uni.navigateTo({
url: '/pages/indent/indent?id=' + 1
})
}
});
}
})
});
jweixin.error(function(res) {
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
console.log("验证失败!")
});
}
})
}