欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue項目中的支付功能實現(xiàn)(微信支付和支付寶支付)

 更新時間:2022年01月04日 16:35:06   作者:水香木魚  
本文主要介紹了vue項目中的支付功能實現(xiàn)(微信支付和支付寶支付),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

項目中常見的支付方式    

  • 支付寶支付   
  • 微信支付   
  • 余額支付(也需要支付寶或微信充值)

注意:本文僅從前端角度展開講解

支付寶支付

項目難點:

頁面是h5網(wǎng)頁,用支付寶支付必須得到支付寶授權(quán),調(diào)用支付寶的api。

(如何授權(quán)請參照:調(diào)用支付寶api

支付寶支付的一般過程是:

    調(diào)用訂單接口,獲得訂單號,支付金額等。
    傳遞訂單號,金額 至預(yù)支付接口
    后臺會返回來一個form,然后提交form自動跳轉(zhuǎn)到支付寶支付頁面

支付過程:

    下圖為為接口文檔,支付接口

    當我們選中支付寶,radio=1;
    當我們點擊支付按鈕,pay()方法執(zhí)行
    此時我們調(diào)用后端支付接口,傳入接口文檔要求字段,訂單號,金額等。
    后臺回傳給我們一個{code:201,data:""};
    此時我們把form注入到我們頁面中,讓form表單提交,跳轉(zhuǎn)到支付寶頁面

  topay(){
      switch(this.radio){
        case '3':
        this.yuer();
        break;
        case '1':
        this.zhifubao();
        case '0':
        this.getWechatCode();
      }
    },
   zhifubao(){
     payByZhifubao(
       {
         OutTradeNo:'Oct20200909095646265303127',//商戶訂單號,商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號,必填 。需要保證商戶端唯一。
          Subject: "手機網(wǎng)站支付測試",//主題
          ProductCode: "QUICK_WAP_WAY",
          body: "手機網(wǎng)站支付描述信息",//商品描述,可空
          TotalAmount: 20 //付款金額,必填        }
     ).then(res=>{
       console.log(res);
        if (res.code === 201) {
            //將數(shù)據(jù)存到vuex中
            // this.$store.dispatch('addAliFrom', res.data.data)
            this.html = res.data;
            var form = res.data;
            const div = document.createElement("div");
            div.innerHTML = form; //此處form就是后臺返回接收到的數(shù)據(jù)
            document.body.appendChild(div);
            document.forms[0].submit();
            //return this.$router.push('/aliPay')
          } else {
            return alert(res.data.msg);
          }
     })
    },

微信支付

步驟:
微信支付后臺程序員會給你返一個地址,首先我們需要安裝qrcodejs2將地址轉(zhuǎn)換成二維碼,需要先npm install qrcodejs2
然后需要一個div來存放這個微信二維碼,寬高樣式各位自己可以去css里寫,我在這里還加了一個loading,有需要的也可以自己加

<div id="wechatcode" v-loading="loading"
element-loading-text="拼命加載中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
</div>

導(dǎo)入模塊

import QRCode from 'qrcodejs2' // 引入qrcode

下面是接口數(shù)據(jù)獲取然后操作二維碼

getWechatCode() {
                Models
                    .getModel("wechatpay")
                    .get({
                        orderId:this.orderId
                    })
                    .then(res => {
                        if(res.data.code == 200){
                            this.wechatPayUrl = res.data.resultData
                            if(!this.flag){
                            //重點是這里,其余的是為了我的切換業(yè)務(wù)邏輯和接口
                                let wechatcode = new QRCode('wechatcode', {
                                    width: 200,
                                    height: 200,
                                    text: this.wechatPayUrl, // 二維碼地址
                                    colorDark: "#000",
                                    colorLight: "#fff",
                                })
                            }
                            this.flag = true
                            this.loading = false
                            this.isWechatCodeShow = true
                        }
                    })
        },

在微信掃描支付完之后,后臺人員可以拿到支付成功結(jié)果,返給前臺人員,那么前端人員只能不斷去調(diào)接口查詢是否已支付,在這里我們可以用生命周期來做輪詢,在跳出之后需要銷毀

mounted() {
        this.getWechatCode()
        //實現(xiàn)輪詢
        this.interval = window.setInterval(() => {
        setTimeout(this.getOrderStatus(), 0);
        }, 3000);
        
    },
    beforeDestroy() {
        //清除輪詢   
        clearInterval(this.interval)
        this.interval = null
    },

這里的`getOrderStatus()方法是為了查詢后臺支付狀態(tài)的,如果成功跳轉(zhuǎn)到支付頁面,做個If else判斷即可

到此這篇關(guān)于vue項目中的支付功能實現(xiàn)(微信支付和支付寶支付)的文章就介紹到這了,更多相關(guān)vue項目支付內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中如何實現(xiàn)復(fù)制內(nèi)容到剪切板詳解

    vue中如何實現(xiàn)復(fù)制內(nèi)容到剪切板詳解

    有些業(yè)務(wù)需求需要點擊按鈕復(fù)制鏈接,下面這篇文章主要給大家介紹了關(guān)于vue中如何實現(xiàn)復(fù)制內(nèi)容到剪切板的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • vue在響應(yīng)頭response中獲取自定義headers操作

    vue在響應(yīng)頭response中獲取自定義headers操作

    這篇文章主要介紹了vue在響應(yīng)頭response中獲取自定義headers操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue router動態(tài)路由實現(xiàn)過程

    Vue router動態(tài)路由實現(xiàn)過程

    Vue動態(tài)路由(約定路由),聽起來好像很玄乎的樣子,但是你要是理解了實現(xiàn)思路,你會發(fā)現(xiàn)沒有想象中的那么難,下面這篇文章主要給大家介紹了關(guān)于vue實現(xiàn)動態(tài)路由添加功能的簡單方法,需要的朋友可以參考下
    2023-03-03
  • Vue中監(jiān)視屬性和計算屬性區(qū)別解析

    Vue中監(jiān)視屬性和計算屬性區(qū)別解析

    這篇文章主要介紹了Vue中監(jiān)視屬性和計算屬性區(qū)別,通過本文學習大家知道computed與watch配置項問題,computed能完成的功能,watch都可以完成,本文通過實例代碼給大家詳細講解,需要的朋友可以參考下
    2022-10-10
  • 在Vue項目中集成和使用Lottie動畫庫的步驟詳解

    在Vue項目中集成和使用Lottie動畫庫的步驟詳解

    Lottie 是一個由 Airbnb 開源的動畫庫,它允許你在 Web、iOS、Android 等平臺上使用體積小、高性能的體驗豐富的矢量動畫,本文將詳細介紹在 Vue 項目中如何集成和使用 Lottie,文中有詳細的代碼講解,需要的朋友可以參考下
    2023-11-11
  • Vue3實現(xiàn)provide/inject的示例詳解

    Vue3實現(xiàn)provide/inject的示例詳解

    Vue3 的 Provide / Inject 的實現(xiàn)原理其實就是巧妙利用了原型和原型鏈來實現(xiàn)的。本文將通過示例為大家介紹下provide/inject的具體實現(xiàn),需要的可以參考一下
    2022-11-11
  • 解決el-date-picker 寬度溢出瀏覽器的問題

    解決el-date-picker 寬度溢出瀏覽器的問題

    這篇文章主要介紹了解決如何el-date-picker 寬度溢出瀏覽器問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-07-07
  • Vue2.0用 watch 觀察 prop 變化(不觸發(fā))

    Vue2.0用 watch 觀察 prop 變化(不觸發(fā))

    本篇文章主要介紹了Vue2.0用 watch 觀察 prop 變化(不觸發(fā)),非常具有實用價值,需要的朋友可以參考下
    2017-09-09
  • Vue 實現(xiàn)復(fù)制功能,不需要任何結(jié)構(gòu)內(nèi)容直接復(fù)制方式

    Vue 實現(xiàn)復(fù)制功能,不需要任何結(jié)構(gòu)內(nèi)容直接復(fù)制方式

    今天小編就為大家分享一篇Vue 實現(xiàn)復(fù)制功能,不需要任何結(jié)構(gòu)內(nèi)容直接復(fù)制方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue父組件向子組件傳遞多個數(shù)據(jù)的實例

    vue父組件向子組件傳遞多個數(shù)據(jù)的實例

    下面小編就為大家分享一篇vue父組件向子組件傳遞多個數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03

最新評論