vue项目 微信支付 和 支付宝支付
代码:
支付宝方式:后台会返回来一个form,然后提交form自动跳转到支付宝支付页面。
代码:
<template> <div class="payBox"> <div class="img-logo"> <img src="http://img.huoxingbeidiao.com/public/WePayLogo.png" alt=""> </div> <div class="info-box"> <div style="padding-bottom: 20px;"> <qrcode-vue :value="qrurl" :size="200" level="H"></qrcode-vue> </div> <img src="http://img.huoxingbeidiao.com/public/WePayInfo.png" alt=""> <p class="price">¥ { {amt}}</p> </div> </div> </template> <script> import QrcodeVue from qrcode.vue export default { data() { return { amt: 0, qrurl: , timer: null } }, components: { QrcodeVue }, methods: { getOrderInfo() { if (sessionStorage.qrurl && sessionStorage.amt) { this.qrurl = sessionStorage.qrurl; this.amt = sessionStorage.amt; } }, startLoop() { this.timer = setInterval(() => { this.isPaySuccess() }, 3000) }, async isPaySuccess() { const orderId = sessionStorage.order_id; const res = await this.$http.get(orderInfo/queryOrder?orderId= + orderId) const { code, msg, resultList } = res.data if (code === 200) { clearInterval(this.timer); this.timer = null; sessionStorage.removeItem(qrurl); sessionStorage.removeItem(amt); sessionStorage.removeItem(order_id); sessionStorage.removeItem(returnUrl); setTimeout(() => { this.$router.push({ name: order }) }, 3000) } else if (code === 401) { clearInterval(this.timer); this.timer = null; sessionStorage.removeItem(qrurl); sessionStorage.removeItem(amt); sessionStorage.removeItem(order_id); sessionStorage.removeItem(returnUrl); this.$message.error(msg) this.$router.push({ name: login }) } else { } } }, created() { this.getOrderInfo() this.startLoop() }, beforeDestroy() { clearInterval(this.timer) this.timer = null } } </script> <style scoped> .payBox { width: 1000px; margin: 0 auto; } .payBox .img-logo { padding: 20px 0; text-align: center; } .payBox .img-logo img { width: 180px; } .info-box { padding: 60px 0; border-top: 3px solid #F43B66; -webkit-box-shadow: 0 0 32px 0 rgba(0, 0, 0, .18); box-shadow: 0 0 32px 0 rgba(0, 0, 0, .18); text-align: center; } .info-box .price { color: #F43B66; font-size: 40px; padding-top: 20px; padding-bottom: 20px; border-bottom: 1px solid #f1f1f1; } </style>
需要安装qrcode.vue
npm install --save qrcode.vue 或 yarn add qrcode.vue