這不是玩笑~~因為企業(yè)號發(fā)給開發(fā)者的隨機(jī)簽名里面,很有可能包含 號,當(dāng)你get url的時候,php會自動把 號過濾為空格,導(dǎo)致發(fā)來的簽名和實際地址簽名不一致,signature驗證就不會通過了,會報40001: 簽名驗證錯誤。
當(dāng)然,你也可以把空格再還原為 號,這樣能確保與發(fā)送的簽名地址一致。(我覺得這是微信回調(diào)的一個小bug,簽名里不應(yīng)該帶有這樣特殊意義的符號)
坑3
全部都通過驗證了,也返回微信要的明文了,還是不通過,what?打印到本地看看,也沒錯啊,百度我都搜遍了,什么去掉文件BOM頭,改header頭,通通都試過了,我真的的的確確解密了,而且把解密的結(jié)果返回給了微信,還是不行啊,WTF。。
真的返回了明文么?你以為打印到本地就是對的么?錯了。有個東西叫緩沖區(qū)
緩沖區(qū)的東西是不會打印到本地的,微信在訪問你網(wǎng)址的時候,先get到的東西是緩沖區(qū)內(nèi)容而不是你輸出的明文。所以,要先清除緩沖區(qū),辦法是在echo前使用ob_clean(),估計其他框架也一樣。
這三個算是比較大的坑吧,網(wǎng)上的資料也少得可憐,希望能幫到大家。
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機(jī)的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn