亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

項(xiàng)目中常見的支付方式    

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

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

支付寶支付

項(xiàng)目難點(diǎn):

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

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

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

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

支付過程:

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

    當(dāng)我們選中支付寶,radio=1;
    當(dāng)我們點(diǎn)擊支付按鈕,pay()方法執(zhí)行
    此時(shí)我們調(diào)用后端支付接口,傳入接口文檔要求字段,訂單號(hào),金額等。
    后臺(tái)回傳給我們一個(gè){code:201,data:""};
    此時(shí)我們把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',//商戶訂單號(hào),商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號(hào),必填 。需要保證商戶端唯一。
          Subject: "手機(jī)網(wǎng)站支付測(cè)試",//主題
          ProductCode: "QUICK_WAP_WAY",
          body: "手機(jī)網(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就是后臺(tái)返回接收到的數(shù)據(jù)
            document.body.appendChild(div);
            document.forms[0].submit();
            //return this.$router.push('/aliPay')
          } else {
            return alert(res.data.msg);
          }
     })
    },

微信支付

步驟:
微信支付后臺(tái)程序員會(huì)給你返一個(gè)地址,首先我們需要安裝qrcodejs2將地址轉(zhuǎn)換成二維碼,需要先npm install qrcodejs2
然后需要一個(gè)div來存放這個(gè)微信二維碼,寬高樣式各位自己可以去css里寫,我在這里還加了一個(gè)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){
                            //重點(diǎn)是這里,其余的是為了我的切換業(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
                        }
                    })
        },

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

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

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

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

相關(guān)文章

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

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

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

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

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

    Vue router動(dòng)態(tài)路由實(shí)現(xiàn)過程

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

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

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

    在Vue項(xiàng)目中集成和使用Lottie動(dòng)畫庫的步驟詳解

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論