• <del id="gycm0"></del>
    <abbr id="gycm0"></abbr>
    <fieldset id="gycm0"><table id="gycm0"></table></fieldset>

    微信公眾號調用發票抬頭接口總結

    更新時間:2022-04-18 編輯:創始人 關注人次:0 云搜索


    image

    剛入職沒多久,給我一個微信公眾號的項目,之前也沒有經驗,今天把我開發時遇到的坑總結一下,希望可以幫助一些像我一樣的小白兔!

    我的項目是前端H5頁面,vue項目,我接手的時候已經有過微信支付功能了,我看項目中在public文件夾下index.html中引入了jwexin.js

    接下來就是在頁面實現功能代碼如下:

    <i @click="getInvoiceList()" :class="{noClick:isDisabled}" class="el-icon-s-operation invoiceBtn"></i>  //獲取發票抬頭按鈕


    調用獲取微信配置參數接口 getwxticket

    getInvoiceList(){
       this.isDisabled = true   let _this = this   let url = location.href.split('#')[0]
       getwxticket(url).then(res=>{
          let data = res.data
          wx.config({
            beta: true,//用于方法未對外公開的情況        debug: false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來        appId: data.appId, // 必填,公眾號的唯一標識        timestamp: data.timestamp, // 必填,生成簽名的時間戳        nonceStr:data.nonceStr, // 必填,生成簽名的隨機串        signature: data.signature,// 必填,簽名,見附錄1        jsApiList: [
              "chooseInvoiceTitle"        ] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2      });
          wx.ready(function(){
            // config信息驗證后會執行ready方法,所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對于用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中。        _this.doReady();
          });
          wx.error(function(res){
            console.log(res,'失敗!')
            _this.isDisabled = false        // config信息驗證失敗會執行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對于SPA可以在這里更新簽名。      });
       })
                    
    },


    發票抬頭接口

    doReady () {
       let _this = this   wx.invoke('chooseInvoiceTitle', {
          "scene": "1"   }, function (res) {
          // 這里處理調用結果X``      _this.isDisabled = false      var info = JSON.parse(JSON.stringify(res)).choose_invoice_title_info;
          var infoJ = JSON.parse(JSON.parse(JSON.stringify(info)));
          _this.invoiceSave.title = infoJ.title //發票抬頭      _this.invoiceSave.taxFileNumber = infoJ.taxNumber; //稅號      _this.invoiceSave.address = infoJ.companyAddress //公司地址      _this.invoiceSave.tel = infoJ.telephone //電話      _this.invoiceSave.bankname = infoJ.bankName //開戶銀行      _this.invoiceSave.bankAccount = infoJ.bankAccount // 銀行賬號      _this.invoiceSave.titleType = infoJ.type //發票抬頭類型   })  
    },


    這樣寫應該沒有問題才對,可我偏偏是個蘋果手機,怎么請求接口,都會返回簽名無效的錯誤,在網上找了好久都沒有找到解決辦法,知道我用同事的手機測試,才發現同事的手機是成功的,那問題就鎖定了,是iOS系統的問題,順著這個問題找解決辦法,網上說是因為:“微信公眾號分享功能,安卓成功,ios出現簽名錯誤。區別在于發送給后臺做驗證的url不同,安卓需要發送當前頁面的url,ios需要發送進入的第一個頁面的url,所以需要將第一個頁面的url保存起來”照貓畫虎同理,解決辦法:

    在路由守衛里添加如下代碼:

    router.beforeEach((to, from, next) => {
      if (window.entryUrl == undefined) {
        window.entryUrl = location.href.split('#')[0]
      }
    })


    然后在頁面的getInvoiceList方法里添加如下代碼判斷機型:

    let u= navigator.userAgent;
      let isAndroid = u.indexOf('Android')>-1||u.indexOf('Adr')>-1  if (isAndroid) {
        _this.url= Base64.encode(location.href.split('#')[0])
      }else{
         _this.url= Base64.encode(window.entryUrl)
      }


    本文地址: http://www.szycspjx.com/show-241.html ,轉載請注明出處。
    上一篇:一臺服務器可以安裝多少SSL證書 返回列表 下一篇:沒有了

    服務支持

    我們珍惜您每一次在線詢盤,有問必答,用專業的態度,貼心的服務。

    讓您真正感受到我們的與眾不同!

    主站蜘蛛池模板: 亚洲欧美精品丝袜一区二区| 一区二区三区精品高清视频免费在线播放| 国产午夜福利精品久久| 日韩精品无码一区二区中文字幕 | 久久精品一区二区| 亚洲性日韩精品国产一区二区 | 欧美精品高清在线观看| 日产精品久久久久久久| 久草热久草热线频97精品| 国产在线拍揄自揄视精品不卡| 亚洲2022国产成人精品无码区 | 国产亚洲精品精华液| 亚洲欧美日韩精品久久亚洲区| 国产精品毛片一区二区| 亚洲欧美日韩精品| 高清免费久久午夜精品| 久久精品中文无码资源站| 亚洲精品久久久www| 久久e热在这里只有国产中文精品99| 欧美精品国产一区二区| 91视频国产精品| 国产午夜精品久久久久免费视| 中文字幕精品亚洲无线码一区应用 | 久久夜色撩人精品国产小说| 91av国产精品| 国产一区二区三区久久精品| 精品人伦一区二区三区潘金莲| 亚洲国产精品综合久久网络| 老司机精品影院91| 久久久精品视频免费观看| 精品国产不卡一区二区三区| 国产精品成人99久久久久91gav| 色播精品免费小视频| 国产亚洲综合成人91精品| 2022国产精品自产拍在线观看| 久久亚洲精品国产精品| 久久久精品人妻一区二区三区四| 亚洲av永久无码精品古装片 | 午夜精品视频在线观看| 四虎成人精品免费影院| 91国内揄拍国内精品情侣对白|