Vue中微信支付的实例

移动端
·
微信以外的浏览器:( ==先运行了这一步,才继续跳转到了微信才继续下面的微信浏览器里面的操作 ==)

	//选择微信账号进行支付
	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)
      }
    }

你可能感兴趣的:(Vue)