真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ThinkPHP使用微信企業(yè)號(hào)回調(diào)的坑有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹了ThinkPHP使用微信企業(yè)號(hào)回調(diào)的坑有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)岳陽樓免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

ThinkPHP 使用微信企業(yè)號(hào)回調(diào)的坑

最近在做企業(yè)號(hào)回調(diào)的接口,之前做過幾個(gè)企業(yè)號(hào)的應(yīng)用了,每次接入到Thinkphp都報(bào)各種各樣的錯(cuò)誤,算哥倒霉,該踩的不該踩的坑全踩了。

這次掉坑里差點(diǎn)就放棄了,開發(fā)過企業(yè)號(hào)的都知道,企業(yè)號(hào)回調(diào)會(huì)經(jīng)過一個(gè)加密的算法,要求開發(fā)者對(duì)此進(jìn)行解密才能開啟回調(diào),就是個(gè)這個(gè)回調(diào),微信的錯(cuò)誤提示極其霸道,不管你什么錯(cuò),就一句話“ echostr校驗(yàn)失敗,請(qǐng)您檢查是否正確解密并輸出明文echostr”。最起碼應(yīng)該告訴一下開發(fā)者,微信收到的返回長(zhǎng)度是多少,也好與自己的輸出進(jìn)行校驗(yàn),如果長(zhǎng)度都不一致,就更不用說內(nèi)容了。

如果你跟我一樣用了tp框架,那你要留意了,本文以Thinkphp3.2.3 php版本5.3為例

坑1

  • 下載官方的處理接口的范例,放在Thinkphp>Library>Wechat(自建)目錄下

  • 修改WXBizMsgCrypt.php為WXBizMsgCrypt.class.php

  • 在WXBizMsgCrypt中聲明命名空間namespace Wechat;

  • 在你需要的控制器中引入類use Wechat WXBizMsgCrypt;

之后就是使用官方的sample copy進(jìn)你的項(xiàng)目簡(jiǎn)單修改下就算整合完成了,過程挺簡(jiǎn)單的,但是!在PHP5.3之前構(gòu)造函數(shù)的寫法和PHP5.3之后有變化,構(gòu)造函數(shù)不能再以類名當(dāng)作函數(shù)名來命名,必須要使用__construct聲明一個(gè)構(gòu)造函數(shù),也就是說用官方的例子來整合是肯定會(huì)報(bào)錯(cuò)的,當(dāng)然前提是你用的也是PHP5.3之后的版本。

所以還需要

  • 修改WXBizMsgCrypt文件中WXBizMsgCrypt函數(shù)名,改為__construct

  • 修改pkcs7Encoder文件中pkcs7Encoder函數(shù)名,改為__construct

大功告成,可能不適用于低版本的Thinkphp 或者php5.3以下,我沒做過其他版本的測(cè)試

坑2

填寫企業(yè)號(hào)回調(diào)信息點(diǎn)擊保存不成功時(shí),多點(diǎn)幾次真的有奇效!
這不是玩笑~~因?yàn)槠髽I(yè)號(hào)發(fā)給開發(fā)者的隨機(jī)簽名里面,很有可能包含+號(hào),當(dāng)你get url的時(shí)候,php會(huì)自動(dòng)把+號(hào)過濾為空格,導(dǎo)致發(fā)來的簽名和實(shí)際地址簽名不一致,signature驗(yàn)證就不會(huì)通過了,會(huì)報(bào)40001: 簽名驗(yàn)證錯(cuò)誤。
當(dāng)然,你也可以把空格再還原為+號(hào),這樣能確保與發(fā)送的簽名地址一致。(我覺得這是微信回調(diào)的一個(gè)小bug,簽名里不應(yīng)該帶有這樣特殊意義的符號(hào))

坑3

全部都通過驗(yàn)證了,也返回微信要的明文了,還是不通過,what?打印到本地看看,也沒錯(cuò)啊,百度我都搜遍了,什么去掉文件BOM頭,改header頭,通通都試過了,我真的的的確確解密了,而且把解密的結(jié)果返回給了微信,還是不行啊,WTF。。

真的返回了明文么?你以為打印到本地就是對(duì)的么?錯(cuò)了。有個(gè)東西叫緩沖區(qū)
緩沖區(qū)的東西是不會(huì)打印到本地的,微信在訪問你網(wǎng)址的時(shí)候,先get到的東西是緩沖區(qū)內(nèi)容而不是你輸出的明文。所以,要先清除緩沖區(qū),辦法是在echo前使用ob_clean(),估計(jì)其他框架也一樣。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“ThinkPHP使用微信企業(yè)號(hào)回調(diào)的坑有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!


網(wǎng)站欄目:ThinkPHP使用微信企業(yè)號(hào)回調(diào)的坑有哪些-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/spgdh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部