生成微信支付二维码(前端)

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)测试

相关推荐
鹏北海12 分钟前
从“版本号打架”到 30 秒内提醒用户刷新:一个微前端团队的实践
前端·面试·架构
stormsha19 分钟前
CSS 样式美学从基础语法到界面精筑的实战宝典
前端·css·postcss·设计语言
yqcoder22 分钟前
css 中,backdrop-filter: blur(10px) 作用
前端·css
昵称为空C27 分钟前
kafka的替代品redpanda部署与SpringBoot集成使用案例
spring boot·后端·kafka
喜欢你,还有大家36 分钟前
DaemonSet && service && ingress的
linux·架构·kubernetes
一点一木1 小时前
国内首款原生视觉编程模型实测:Doubao-Seed-Code 前端 Agent 从零完成像素画编辑器
前端·人工智能·agent
SoaringHeart1 小时前
Flutter组件封装:标签拖拽排序 NDragSortWrap
前端·flutter
zeijiershuai1 小时前
Vue 工程化、ElementPlus 快速入门、ElementPlus 常见组件-表格组件、ElementPlus常见组件-分页条组件
前端·javascript·vue.js
q***09801 小时前
Spring Boot 2.7.x 至 2.7.18 及更旧的版本,漏洞说明
java·spring boot·后端
程序员爱钓鱼2 小时前
Python 编程实战 · 进阶与职业发展:数据分析与 AI(Pandas、NumPy、Scikit-learn)
后端·python·trae