1、在api下创建接口方法(order.js)
java
//根据订单号生成支付二维码
createNative(orderNo) {
return request({
url: `/orderservice/paylog/createNative/${orderNo}`,
method: 'get'
})
}
2、点击"去支付"(/order/_oid.vue),跳转支付页面,显示二维码
java
asyncData({ params, error }) {
//调用接口
return order.getOrderInfo(params.oid).then(response => {
//得到返回的两个结果
return {
order:response.data.data.orderInfo,
orderNo:params.oid
};
});
},
methods: {
toPay(){
//跳转到支付页面
this.$router.push({path:'/pay/'+this.orderNo})
}
}
3、支付页面、显示二维码
(1)有vue组件展现二维码
(2)创建动态路由pages/pay/_pid.vue页面,添加页面元素
java
<template>
<div class="cart py-container">
<!--主内容-->
<div class="checkout py-container pay">
<div class="checkout-tit">
<h4 class="fl tit-txt"><span class="success-icon"></span><span class="success-info">订单提交成功,请您及时付款!订单号:{{payObj.out_trade_no}}</span>
</h4>
<span class="fr"><em class="sui-lead">应付金额:</em><em class="orange money">¥{{payObj.total_fee}}</em></span>
<div class="clearfix"></div>
</div>
<div class="checkout-steps">
<div class="fl weixin">微信支付</div>
<div class="fl sao">
<p class="red">请使用微信扫一扫。</p>
<div class="fl code">
<!-- <img id="qrious" src="~/assets/img/erweima.png" alt=""> -->
<!-- <qriously value="weixin://wxpay/bizpayurl?pr=R7tnDpZ" :size="338"/> -->
<qriously :value="payObj.code_url" :size="338"/>
<div class="saosao">
<p>请使用微信扫一扫</p>
<p>扫描二维码支付</p>
</div>
</div>
</div>
<div class="clearfix"></div>
<!-- <p><a href="pay.html" target="_blank">> 其他支付方式</a></p> -->
</div>
</div>
</div>
</template>
(3)pages/pay/_pid.vue页面js方法实现
java
import order from "@/api/order";
export default {
//异步请求操作
asyncData({ params, error }) {
//调用接口
return order.createNative(params.pid).then(response => {
//得到返回的两个结果
return {
payObj:response.data.data
};
});
}
}
(4)测试