好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解Html5微信支付爬坑之路

詳解Html5微信支付爬坑之路

熱門標簽:鄭州電銷外呼系統違法嗎 農村住宅地圖標注 威海營銷外呼系統招商 ai電銷機器人連接網關 中紳電銷智能機器人 漳州人工外呼系統排名 鶴壁手機自動外呼系統怎么安裝 濟南辦理400電話 跟電銷機器人做同事

前言

在開發微信公眾號活動中,由于之前沒有接觸過與微信相關的開發,所以導致掉坑,爬坑,不過也讓我對微信公眾和微信官方文檔的熟悉大大增加。

爬坑之路

爬坑一:單頁SPA和后端路由的問題

這個我已經單獨做總結:https://www.jb51.net/article/144341.htm

爬坑二:安卓大概率調起微信支付失敗(引入微信的js-sdk包失敗)

在微信的官方文檔中:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6

有這樣的一個DEMO:

function onBridgeReady(){
   WeixinJSBridge.invoke(
      'getBrandWCPayRequest', {
         "appId":"wx2421b1c4370ec43b",     //公眾號名稱,由商戶傳入     
         "timeStamp":"1395712654",         //時間戳,自1970年以來的秒數     
         "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //隨機串     
         "package":"prepay_id=u802345jgfjsdfgsdg888",     
         "signType":"MD5",         //微信簽名方式:     
         "paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信簽名 
      },
      function(res){
      if(res.err_msg == "get_brand_wcpay_request:ok" ){
      // 使用以上方式判斷前端返回,微信團隊鄭重提示:
            //res.err_msg將在用戶支付成功后返回ok,但并不保證它絕對可靠。
      } 
   }); 
}
if (typeof WeixinJSBridge == "undefined"){
   if( document.addEventListener ){
       document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
   }else if (document.attachEvent){
       document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
       document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
   }
}else{
   onBridgeReady();
}

在后端同事授權成功后,在活動頁面頁面引入這段代碼,開開心心,build 提交 測試 嗯蘋果沒問題,安卓好像沒問題,然鵝安卓有時候調不起支付,開始以為是微信版本的原因,等等其他,但是,調起成功的概率也太TM低了,10次才能調起1次,得,肯定是代碼原因了。改吧。

解決思路:

開微信開發者工具,打log,最后發現在這一步時候if (typeof WeixinJSBridge == "undefined")

1.ios能夠調起微信瀏覽器的js-sdk

2.安卓大部分都走到undefined里面去了

這里其實我也不太清楚原因。個人感覺是微信安卓的內置瀏覽器版本和這個 WeixinJSBridge 方法的問題。(希望有大神能夠解答一下)

既然js-sdk 調不起,那就手動引入配置吧 //所以有時候偷懶反而更加麻煩,吸取教訓

if (typeof WeixinJSBridge == "undefined"){
    console.log( WeixinJSBridge);
   if( document.addEventListener ){
       document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
   }else if (document.attachEvent){
       document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
       document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
   }
}else{
   onBridgeReady();
}

Vue引入微信js-sdk包

npm i -S weixin-js-sdk

在需要引入的頁面引入模塊

import wx from 'weixin-js-sdk'

配置(參考微信官方文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115):

wx.config({
    debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
    appId: '', // 必填,公眾號的唯一標識
    timestamp: , // 必填,生成簽名的時間戳
    nonceStr: '', // 必填,生成簽名的隨機串
    signature: '',// 必填,簽名
    jsApiList: [] // 必填,需要使用的JS接口列表 比如我要調用支付接口 那么就是 [chooseWXPay]
});

這里timestamp是小寫 s 是小寫,數據類型是 int 類型

接下來既然配置成功了,那就繼續看官方文檔

在官方文檔是這么說的,有個ready的方法,在config驗證成功之后,把接口放在里面確保執行。

wx.ready(function(){
    // config信息驗證后會執行ready方法,所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對于用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中。
});

ready里面的引入參數(注意數據類型,和后端同事好好配合- -)

wx.chooseWXPay({
timestamp: 0, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符
nonceStr: '', // 支付簽名隨機串,不長于 32 位
package: '', // 統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=\*\*\*)
signType: '', // 簽名方式,默認為'SHA1',使用新版支付需傳入'MD5'
paySign: '', // 支付簽名
success: function (res) {
// 支付成功后的回調函數
}
});

附上本人的demo

在ready里面使用Vue data中的數據,一不小心掉到this指向的坑,如果不加bind,wx.chooseWXPay里面的參數是拿不到從后端請求回來的數據的,這里的this并不是指向VueComponent,自然無法獲取請求后我賦值給this.wx_config這個數組對象的數據。

getConfig(){
            wx.config({
                debug: this.wx_config.debug, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
                appId: this.wx_config.appId, // 必填,公眾號的唯一標識
                timestamp: this.wx_config.timestamp, // 必填,生成簽名的時間戳
                nonceStr: this.wx_config.nonceStr, // 必填,生成簽名的隨機串
                signature:this.wx_config.signature,// 必填,簽名
                jsApiList: this.wx_config.jsApiList // 必填,需要使用的JS接口列表
            });
            //微信支付
            wx.ready(function() {
                // console.log(this.jsApiCall());
                wx.chooseWXPay({
                    timestamp: this.wechat_code.timestamp,
                    nonceStr:this.wechat_code.nonceStr,
                    package: this.wechat_code.package,
                    signType: this.wechat_code.signType,
                    paySign: this.wechat_code.paySign,
                    success: function () {
                        // 支付成功后的回調函數
                        alert("支付成功");
                        window.location.href = "/hd/becomevip";
                    },
                    cancel: function() {
                        alert("支付失敗");
                    }
                });
            }.bind(this));
        },

總結:

踩坑總是難免的,總結,還有不要因為怕麻煩而不去做正確的事~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:文山 萍鄉 紅河 甘南 蘇州 惠州 咸陽 營口

巨人網絡通訊聲明:本文標題《詳解Html5微信支付爬坑之路》,本文關鍵詞  詳解,Html5,微信,支付,爬坑,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Html5微信支付爬坑之路》相關的同類信息!
  • 本頁收集關于詳解Html5微信支付爬坑之路的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 男女激情上床| 电影在线免费看| 顶级欧美妇高清xxxxx| 激情乱人伦| 亚洲精品国偷拍自产在线观看蜜桃| 国产精品免费一级在线观看| 韩国伦理情事| 91人妻人人爽人人添夜夜爽直播| 丝袜 亚洲 另类 欧美 重口| 91免费网站在线看入口黄| 国产免费久久精品99re丫y| 欧美午夜一级艳片欧美精品明星 | 厨房春潮他含着她的乳| 狂c亲女的文H共妻| 亚洲国产精品综合久久网络| 调教丝袜乘务长| 多男操一女视频| 成年美女视频网站免费大全| 双乳压在落地窗前做h| 91在线无码精品秘?入口不卡| 秦先生大战96年翘臀女神在线| 好深好烫好涨尿进去np| 煌瑟美女网站免费| 超薄灰丝美脚国产一区在线| 免费黄色软件推荐| 实拍小两口啪啪激情啪| h激情小说| 同桌乖~腿打开一点我轻一点| 一夲道无码专区av无码A片| 涩涩资源站| 尻逼软件| 国产成人亚洲精品无码A大片| 一本久| 免费观看很黄很色裸乳视频| 男人把女人桶到爽爆了的视频| 老湿机国产福利视频| 女生RAP发声技巧| 又色又爽的视频| 美女露胸网站| 宝贝你下面好软好紧h| 国产一区二区三区毛片|