国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - 微信公眾平臺, config:invalid signature一直爆這個錯誤,求教如何解決?
PHPz
PHPz 2017-04-11 13:13:33
0
46
11643


然后哦 用這個校驗和輸出的是一致的也就是說 簽名應(yīng)該沒問題吧 但是為什么手機上會顯示無效呢 那個環(huán)節(jié)又出錯了

PHPz
PHPz

學(xué)習(xí)是最好的投資!

reply all(44)
迷茫

出現(xiàn)問題的原因是參與簽名的URL地址不正確,需要動態(tài)獲取當(dāng)前頁面完整的URL地址(包括?后面的參數(shù),但不能包含#號),如若URL地址為:http://www.xxx.xxx/payment/wxpay/jspay?oid=xxxx&attr=xxxx#wechat,那么完整的URL地址應(yīng)該是截取#號之前的部份。為什么會出現(xiàn)#號呢?因為你的URL在被分享到朋友圈等微信系統(tǒng)自動會添加一些參數(shù)。

黃舟

看我把這些坑都總結(jié)了一下:
要命的invalid signature。其實騰訊的文檔已經(jīng)寫了,只能怪我自己理解能力太差,掉了好幾次坑。

  • 簽名要用到的jsapi_ticket需要保存的,2小時有效期。如果在2小時內(nèi)出現(xiàn)問題需要刪除才能工作,一般是自身程序的問題,請檢查。

  • nonceStr和noncestr的大小寫,當(dāng)心!

  • url一定要當(dāng)心,如果是"http://x.com/jspay?oid=0&attr=1#wechat"的形式,那么應(yīng)該保留的是"http://x.com/jspay?oid=0&attr=1"。

  • 據(jù)此,url在JavaScript中是location.href.split('#')[0]獲取。

  • 據(jù)此,url在php中用$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]拼裝,

  • 據(jù)說會有多余的80端口問題,但是記錄者沒有遇到過,總之請小心。

  • url在JavaScript中千萬別忘記“encodeURIComponent”!否則后果很詭異,遇到過初始化的時候報invalid
    signature,但是API接口又能調(diào)用的情況。

左手右手慢動作

官方已經(jīng)提供了微信 JS 接口簽名校驗工具(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign),填入相應(yīng)的參數(shù)就能出來相應(yīng)的值,然后對比下,就能發(fā)現(xiàn)具體是那塊錯了。 我之前碰到一個因為域名后面沒有/而導(dǎo)致失敗的情況

小葫蘆

請參考我的另一個回答:
http://segmentfault.com/q/1010000002502269/a-1020000002549180

劉奇

簡單的來說,signture一樣的話,那就是url這里不對了,實際打開頁面的url和簽名的url對不上。

小葫蘆

我也遇到這個問題了, 發(fā)起微信支付的時候提示 invalid signature , 本地程序生成的 簽名 跟 官網(wǎng)通過的簽名工具生成的簽名 對比 也是一致的, 哪位朋友 也遇到了,并解決了,還望不吝賜教。

阿神

我的也一樣,把我自己成生的與校驗工具生成的對比,沒任務(wù)差別:79e9778274e7ed0503666aeee4b9dfb350a56b54
79e9778274e7ed0503666aeee4b9dfb350a56b54
我現(xiàn)在也蛋疼了,一直提示config:invalid signature

Peter_Zhu

通過ajax把URL傳到服務(wù)端,簽名也是正確的,就是報config invalid signature,這個可以從哪里調(diào)試啊?

<script type="text/javascript">
 

var targetUrl=location.href.split("#")[0];
alert("target url is:" + targetUrl);

var aj=$.ajax({     
type: "post",     
url: "http://XXXXXXX.com/wx?targetUrl="+targetUrl,     
dataType: "json",
contentType: "application/json; charset=utf-8", 
data:{}, 
success: function (msg) {    
    alert("appid: "+msg.appid+";  timestamp:" + msg.timestamp+" ; nonceStr:" + msg.nonceStr+";  signature:" + msg.signature);
      
    
    wx.config({
          debug:true,
          appId:msg.appid,
          timestamp:msg.timestamp,
          nonceStr:msg.nonceStr,
          signature:msg.signature,
          jsApiList: [
        'checkJsApi',
        'onMenuShareTimeline',
        'onMenuShareAppMessage',
        'onMenuShareQQ',
        'onMenuShareWeibo',
        'hideMenuItems',
        'showMenuItems',
        'hideAllNonBaseMenuItem',
        'showAllNonBaseMenuItem',
        'translateVoice',
        'startRecord',
        'stopRecord',
        'onRecordEnd',
        'playVoice',
        'pauseVoice',
        'stopVoice',
        'uploadVoice',
        'downloadVoice',
        'chooseImage',
        'previewImage',
        'uploadImage',
        'downloadImage',
        'getNetworkType',
        'openLocation',
        'getLocation',
        'hideOptionMenu',
        'showOptionMenu',
        'closeWindow',
        'scanQRCode',
        'chooseWXPay',
        'openProductSpecificView',
        'addCard',
        'chooseCard',
        'openCard'
          ]
      });
     wx.ready(function () {
        
        alert("config ok...");
        
    });
    
    wx.error(function (res) {
      alert("err....:"+res.errMsg);
    });
    
    },     
error: function (XMLHttpRequest, textStatus, errorThrown) {     
    alert("error ....."+errorThrown);     
}     
});
左手右手慢動作

從百度搜這個問題,就進來了。 你們特么就會copy官方文檔,有錢賺嗎? 沒看見lz已經(jīng)去 接口簽名校驗工具 驗證過了嗎? 官方demo有問題,至少php的有問題, 動態(tài)取url的時候自動給加了80端口。 比如一般我們訪問 www.sss.com/dir/1.php 他會在getSignPackage() 里"$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" 變成 www.sss.com:80/dir/1.php ,所以就一直報invalid signature 。 這是我遇到的問題,上來搜,沒找到答案,又自己解決了。 我說的不一定跟lz遇到的問題一樣,但比你們這些瞎瘠薄拷貝耽誤老子時間的強。

伊謝爾倫

剛剛解決類似的問題。最終發(fā)現(xiàn),代碼所在的頁面的地址一定要與生成簽名里的url一模一樣,對一個字都不能錯,
比如你當(dāng)前頁面是 http://www.abc.com/a.html 那生成signature里傳遞的url的參數(shù)也必須和這個一名模一樣,不能差一個字。。我弄了。。半天,哭了

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template