阿里雲生成支付二維碼並支付前端實現

一 安裝二維碼生成器

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>

六 測試頁面

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