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

    微信公眾號調用發(fā)票抬頭接口總結

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


    image

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

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

    接下來就是在頁面實現(xiàn)功能代碼如下:

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


    調用獲取微信配置參數(shù)接口 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信息驗證后會執(zhí)行ready方法,所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數(shù)中調用來確保正確執(zhí)行。對于用戶觸發(fā)時才調用的接口,則可以直接調用,不需要放在ready函數(shù)中。        _this.doReady();
          });
          wx.error(function(res){
            console.log(res,'失敗!')
            _this.isDisabled = false        // config信息驗證失敗會執(zhí)行error函數(shù),如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數(shù)中查看,對于SPA可以在這里更新簽名。      });
       })
                    
    },


    發(fā)票抬頭接口

    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 //發(fā)票抬頭      _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 //發(fā)票抬頭類型   })  
    },


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

    在路由守衛(wèi)里添加如下代碼:

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

    服務支持

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

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

    主站蜘蛛池模板: 国产三级精品三级在专区| 亚洲午夜精品久久久久久app| 久久国产成人亚洲精品影院| 国产亚洲一区二区精品| 国产精品亚洲αv天堂无码| 亚洲精品自在在线观看| 伊人精品久久久久7777| 精品一区二区三区中文字幕| 亚洲国产精品久久电影欧美| 精品麻豆丝袜高跟鞋AV| 日韩精品国产另类专区| 无码国产精品一区二区免费vr| 亚洲精品成人片在线播放| 亚洲精品性视频| 国产高清在线精品一区二区| 国产区精品高清在线观看| 国产99视频精品免视看7| 精品国产91久久久久久久| 亚洲日韩精品无码一区二区三区| 小辣椒福利视频精品导航| 国产精品欧美一区二区三区| 国产精品999| 国产精品久久久久AV福利动漫| 久久九九有精品国产23百花影院| 国产一区精品| 无码精品A∨在线观看| 久久精品国产亚洲av瑜伽| 亚洲精品中文字幕乱码三区| 国产精品无码一区二区在线| 欧美777精品久久久久网| 国产成人精品综合网站| 国产精品自在拍一区二区不卡| 精品一区二区三区免费| 99re8这里有精品热视频免费| 久久久无码人妻精品无码| 亚洲精品成人a在线观看| 精品国产一区二区三区无码| 亚洲国产人成精品| 日韩精品一区二区三区影院 | 久久久精品人妻无码专区不卡| 国产69精品久久久久9999|