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

        更新時間: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.www-435789.com/show-241.html ,轉載請注明出處。
        上一篇:一臺服務器可以安裝多少SSL證書 返回列表 下一篇:沒有了

        服務支持

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

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

        亚洲乱码日产精品BD在线观看| 亚洲中文字幕无码久久2017| 午夜亚洲福利在线老司机| 亚洲欧美日韩综合久久久| 亚洲中文字幕久久精品无码A | 亚洲中文字幕在线无码一区二区 | 亚洲国产人成在线观看69网站| 久久91亚洲人成电影网站| 亚洲人成网亚洲欧洲无码久久 | 亚洲人成免费电影| 亚洲av永久无码精品三区在线4 | 亚洲日韩看片无码电影| 亚洲永久网址在线观看| 亚洲第一街区偷拍街拍| 国产精品亚洲专区一区| 亚洲国产精品无码久久青草 | 日本中文一区二区三区亚洲| 亚洲福利精品电影在线观看| 亚洲一区日韩高清中文字幕亚洲| 国产亚洲一区二区三区在线不卡| 亚洲人成网77777色在线播放| 日韩亚洲人成在线综合日本| 亚洲国产天堂久久综合网站| 亚洲第一香蕉视频| 色老板亚洲视频免在线观| 亚洲精品亚洲人成在线| 国产亚洲精品仙踪林在线播放| 亚洲国产午夜中文字幕精品黄网站 | 国产精品日本亚洲777| 亚洲乱亚洲乱少妇无码| 亚洲精品无码av人在线观看 | 久久亚洲国产成人亚| 亚洲色欲或者高潮影院| 国产精品亚洲片夜色在线| 亚洲成av人在线观看网站| 亚洲?v女人的天堂在线观看| 亚洲中文字幕无码日韩| 亚洲视频免费在线观看| 精品久久亚洲中文无码| 麻豆亚洲AV成人无码久久精品 | 99999久久久久久亚洲|