1. 程式人生 > >vue.js中微信公眾號中支付寶支付失敗bug解決辦法

vue.js中微信公眾號中支付寶支付失敗bug解決辦法

微信公眾號中呼叫支付寶支付需要在瀏覽器中開啟支付連結然後呼叫支付才可以。

具體方法:

1、檔案

 

2

 

我們使用的是post方法提交。

下面是在vue.js中使用的方法總結

1、建立alipay頁面路由,調起瀏覽器支付提示頁面。(樣式太多,省略)

<template>  <div>    <div class="J-weixin-tip weixin-tip" ref="myWeixinTip">      <div class="weixin-tip-content" ref="myWeixinTipContent">請在選單中選擇在瀏覽器中開啟,<

br/>以完成支付</div>    </div>    <div class="J-weixin-tip-img weixin-tip-img"></div>  </div></template><script>export default {data() {return {      }    },mounted() {if (location.hash.indexOf('error') != -1) {alert('引數錯誤,請檢查');} else {var ua = navigator.userAgent.
toLowerCase();let tip = this.$refs.myWeixinTip;let tipImg = this.$refs.myWeixinTipContent;if (ua.indexOf('micromessenger') != -1) {tip.style.display = 'block';tipImg.style.display = 'block';if (ua.indexOf('iphone') != -1 || ua.indexOf('ipad') != -1 || ua.indexOf('ipod') != -1) {tipImg.className = 'J-weixin-tip-img weixin-tip-img iphone'
;} else {tipImg.className = 'J-weixin-tip-img weixin-tip-img android';}        } else {var getQueryString = function (url, name) {var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");if (reg.test(url)) return RegExp.$2.replace(/\+/g, " ");};var param = getQueryString(location.href, 'goto') || '';location.href = param != '' ? _AP.decode(param) : 'pay.htm#error';}      }    },}

2、頁面確認支付獲取支付表單。

3、

if(self.payWay == "AliPay"){                        //支付寶支付const div = document.createElement('div');div.innerHTML = response.data.data;document.body.appendChild(div);//document.forms[0].alipaysubmit.submit();  // document.forms[0].submit();var queryParam = '';Array.prototype.slice.call(document.querySelectorAll("input[type=hidden]"))    .forEach(function(ele) {queryParam += ele.name+ "="+ encodeURIComponent(ele.value)+ '&';});var url = document.getElementsByName("punchout_form")[0].action+ '&' + queryParam;_AP.pay(url);

Response.data.data為後臺獲取的form表單html