• <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證書 返回列表 下一篇:沒有了

    服務支持

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

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

    主站蜘蛛池模板: 欧美亚洲精品中文字幕乱码免费高清| 久久影院综合精品| 日韩精品欧美国产在线| 久久青青草原国产精品免费| 亚洲精品成人无限看| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 欧美精品手机在线播放| 日产精品一线二线三线芒果| 蜜桃麻豆www久久国产精品| 国产av无码专区亚洲国产精品| 国产成人亚洲精品| 国产综合精品一区二区三区| 少妇人妻偷人精品无码视频新浪| 久久久久久无码国产精品中文字幕| 国产精品99久久久久久宅男 | 亚洲精品国产av成拍色拍| 精品人体无码一区二区三区| 一区二区三区精品国产欧美| 免费精品99久久国产综合精品| 国产精品电影网| 国产成人精品日本亚洲18图| 国产精品v片在线观看不卡| 久久久久人妻一区精品性色av| 亚洲AV无码国产精品麻豆天美| 亚洲精品99久久久久中文字幕 | 国产成人精品久久免费动漫| 国产亚洲色婷婷久久99精品| 精品成在人线AV无码免费看| 精品一区二区三区在线成人 | 亚洲国产精品一区二区第一页免 | 99精品久久精品一区二区| 国内精品伊人久久久久AV影院| 久久亚洲欧美国产精品 | 四虎成人精品无码| 久久亚洲欧美国产精品| 精品国产乱码一区二区三区| 国产精品国色综合久久| 国产69精品久久久久777| 老司机91精品网站在线观看| 国产成人精品福利网站在线观看 | 四虎影视884a精品国产四虎|