青青河边草直播免费观看,青青河边草高清免费版新闻,青柠影院免费观看电视剧高清西瓜,青柠影院免费观看电视剧高清动漫,青青草视频在线观看,青娱乐极品视觉盛宴

0411-39943997
工作時(shí)間:周一至周日 8:30-17:30
技術(shù)文庫
Technical Library

微信 JS SDK 校驗(yàn)簽名成功 但手機(jī)上依然會報(bào) 簽名錯(cuò)誤 的原因

標(biāo)簽: 微信 JS SDK 校驗(yàn)簽名成功 簽名錯(cuò)誤   訪問: 16922017-09-08

相信許多的朋友做開發(fā)的過程中會遇到這樣的問題,用微信官方提供的工具校驗(yàn)簽名:(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign)成功。但是在手機(jī)端一直報(bào) invalid signature 簽名錯(cuò)誤。這不是很矛盾嗎?官方工具都說正確了,然后你還給我報(bào)這個(gè)簽名錯(cuò)了?。?!網(wǎng)上找了好多的答案,一定是我理解能力低下,一直沒明白。但他的提到最多的是參與生成簽名的 URL 存在問題。而我一直在懷疑在點(diǎn)擊 分享的時(shí)候微信會在當(dāng)前的URL上加上什么參數(shù)。因?yàn)槲⑿殴俜揭恢睆?qiáng)調(diào)要?jiǎng)討B(tài)獲取??墒?/span>經(jīng)過一段時(shí)間的測試,發(fā)現(xiàn)并沒有加上什么參數(shù)。那為什么呢,直到我最后在官方的工具頁面發(fā)現(xiàn)了這句話:


6631465788909153210.png
我的測試網(wǎng)址為:http://abc.xxxxxxxxxx.com   在地址欄也是這樣顯示的。但是實(shí)際上我后臺用了 Request.Url.ToString().Split('#')[0];   結(jié)果是:http://abc.xxxxxxxxxx.com/default.aspx我根據(jù)官方的說法,試著將URL 寫死一次試試:http://abc.xxxxxxxxxx.com/結(jié)果通過了。我這下才真正的明白,參與生成簽名的URL的真面目了,是獲取地址欄的URL。那為什么要?jiǎng)討B(tài)獲取嗎?原因是當(dāng)你把要分享的頁面分享出去的時(shí)候,微信會在地址欄上加上一些參數(shù)。如果寫死,當(dāng)朋友點(diǎn)擊你分享的鏈接時(shí)也想分享的話,這時(shí)又會出現(xiàn)簽名錯(cuò)誤了。請注意,這里所說的加上了參數(shù),發(fā)生的時(shí)間點(diǎn)。

總結(jié):
在.net 中沒有直接獲取地址欄信息的方法。
   Request.ApplicationPath:                                 /testweb   
   Request.CurrentExecutionFilePath:               /testweb/default.aspx   
   Request.FilePath:                                               /testweb/default.aspx   
   Request.Path:                                                       /testweb/default.aspx   
   Request.RawUrl:                                                   /testweb/default.aspx   
   Request.Url.AbsolutePath:                               /testweb/default.aspx   
   Request.Url.AbsoluteUrl:                                 http://www.test.com/testweb/default.aspx   
   Request.Url.Host:                                               www.test.com   
   Request.Url.LocalPath:                                     /testweb/default.aspx  

如果你的網(wǎng)址是:   http://abc.xxxxxxxxxx.com/
分享后的地址:http://abc.xxxxxxxxxx.com/?from=singlemessage&isappinstalled=0

我的處理方法是這樣的,有點(diǎn)笨,但好用:

            url = Request.Url.ToString().Split('#')[0];
            if (url == "http://abc.xxxxxxxxxx.com/default.aspx")
            {
                url = "http://abc.xxxxxxxxxx.com/";
            }
            else
            {
                url = url.Replace("default.aspx", "");
            }


Copyright? 2020 仟億科技,All rights reserved.
象山县| 墨竹工卡县| 兰坪| 辽宁省| 绍兴县| 武胜县| 上虞市| 阳春市| 平邑县| 洛隆县| 桑植县| 祁连县| 加查县| 南涧| 佛学| 泉州市| 普宁市| 东乡族自治县| 达拉特旗| 永德县| 商洛市| 高阳县| 股票| 秀山| 马龙县| 祁阳县| 铅山县| 垣曲县| 托克逊县| 重庆市| 浏阳市| 乐清市| 禄丰县| 凤台县| 麻城市| 古浪县| 阿鲁科尔沁旗| 梁平县| 东宁县| 高安市| 毕节市|