移动端:
·
微信以外的浏览器:( ==先运行了这一步,才继续跳转到了微信才继续下面的微信浏览器里面的操作 ==)
//选择微信账号进行支付
location.href = res.data.data.mwebUrl;//res.data.data.mwebUrl 是调用后台接口拿到的
·
微信浏览器:
//相关的参数请调用后台接口获取
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timeStamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名
jsApiList: ["chooseWXPay"] // 必填,需要使用的JS接口列表
});
/**
* config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,
* config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,
* 则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,
* 则可以直接调用,不需要放在ready函数中。
*/
wx.ready(() => {
wx.chooseWXPay({
appId: data.appId,
timestamp: data.timeStamp, // 支付签名时间戳
nonceStr: data.nonceStr, // 支付签名随机串,不长于32 位
package: data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: data.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: data.paySign, // 支付签名
orderNo: data.orderNo, // 订单编号
success(res) {
},
cancel(res) {
}
});
});
wx.error(err => {
console.log(`出错了${err}`);
});
pc端: 生成二维码,扫码进行支付
<!-- 用于放置二维码的容器-->
<div id="createBox"></div>
//生成二维码
qrCode(){
let ele = document.querySelector("#createBox");
let div = document.createElement("div");
div.setAttribute("id", "qrcode");
ele.appendChild(div);
let qrcode = new QRCode("qrcode");
qrcode.makeCode(res.data.data.codeUrl);
},
//删除二维码
removeEle() {
// if (document.querySelector("#qrcode")) {
// document.querySelector("#qrcode").remove();
// }
let parent = document.getElementById('createBox');
var lastChild = parent.lastElementChild ? parent.lastElementChild : parent.lastChild;
console.log(lastChild.id)
console.log(lastChild.className)
if(lastChild.id == 'qrcode'){
parent.removeChild(lastChild)
}
}