vue+elementui接入支付宝支付调用问题
vue电商平台付费需要接入支付宝支付,具体可以参考一下支付宝支付宝开放平台文档:
后端做完处理,需要前端渲染支付接口请求的标签参数。
请求过来的参数以form表单和script标签包裹组成。
后端处理参考:
springboot 对接支付
在普通的html界面中,页面渲染之后,可直接加载,跳转生成支付宝付款码的界面,支付宝支付之后就会返回规定的商户界面。
然而在vue中,通过v-html始终无法将获取到的标签数据渲染到页面,就算将script标签包裹内容单独分离出来,也无法渲染,一直出现空白界面。
1,script标签内容
document.forms[0].submit();
2,
创建元素节点,将数据使用innerHTML 渲染
document.querySelector("body").innerHTML = res.data;
const div = document.createElement("div");
div.innerHTML = res;
document.body.appendChild(div);
document.forms[0].submit();
3,加入document.forms[0].submit();没反应
使用定时器,可以显示,,但是会出现[object][object]现象,之后才会跳转。
setTimeout(()=>{
document.forms[0].submit();
},1000)
3,隐藏掉[object][object]现象
div.setAttribute("style", "display:none;");
4,完整代码
//支付宝支付
zfbPay() {
const orderNo = this.inserOrderList.orderCode;
goPay({ orderNo }, (res) => {
document.querySelector("body").innerHTML = res.data;
const div = document.createElement("div");
div.innerHTML = res;
div.setAttribute("style", "display:none;");
document.body.appendChild(div);
document.forms[0].submit();
});
}
5,支付成功