阿里云生成支付二维码并支付前端实现

一 安装二维码生成器

npm install [email protected]

二 配置插件

创建 plugins/vue-qriously-plugin.js

import Vue from 'vue'
import VueQriously from 'vue-qriously'
Vue.use(VueQriously)

nuxt.config.js中配置

  plugins: [
    { src: '~/plugins/vue-qriously-plugin.js', ssr: false }
  ]

三 api

创建 api/pay.js

import request from '~/utils/request'

export default {
  createNative(orderNo) {
    return request({
      baseURL: 'http://localhost:8170',
      url: `/api/trade/weixin-pay/create-native/${orderNo}`,
      method: 'get'
    })
  }
}

四 订单页面

html

<el-button :disabled="!agree" type="danger" @click="toPay()">去支付</el-button>

脚本

  methods: {
    toPay() {
      if (this.agree) {
        this.$router.push({ path: '/pay/' + this.order.orderNo })
      }
    }
  }

五 支付页面

创建pages/pay/_id.vue

<template>
  <div class="cart py-container">
    <!--主内容-->
    <div class="checkout py-container  pay">
      <div class="checkout-tit" style="width: 1050px; margin: 0 auto; padding: 10px 0;">
        <h4 class="fl tit-txt"><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/100 }}</em></span>
        <div class="clearfix"/>
      </div>
      <div class="checkout-steps">
        <div class="fl weixin">微信支付</div>
        <div class="fl sao">
          <div class="fl code">
            <qriously :value="payObj.code_url" :size="338"/>
            <p style="color: red; text-align:center;">请使用微信扫一扫</p>
          </div>
        </div>
        <div class="clearfix"/>
        <!-- <p><a href="pay.html" target="_blank">> 其他支付方式</a></p> -->
      </div>
    </div>
  </div>
</template>

<script>
import payApi from '~/api/pay'
import orderApi from '~/api/order'

export default {
  // 在服务器端获取二维码url
  async asyncData(page) {
    const response = await payApi.createNative(page.route.params.id)
    return {
      payObj: response.data
    }
  }
}
</script>

六 测试页面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章