微信開發token驗證失敗的解決
阿新 • • 發佈:2019-02-13
之前在伺服器上成功部署並驗證已通過,後開換了一個伺服器地址就始終不能通過token驗證,嘗試了網上的很多辦法,包括在
echo $echoStr;前面加上ob_clean();清空快取等等。現在終於定位到原因,原來是在類class wechatCallbackapiTest中我寫了建構函式,並將一些資料庫初始化的程式碼放在了裡面,註釋掉這些程式碼就能獲得驗證通過。具體原因可能是在資料庫初始化的過程中耗時較多,造成token驗證中的時間戳對應不上,造成了token無法通過。現在改寫了我的建構函式,根據收到的訊息傳一個引數給建構函式,選擇性地進行資料庫操作,這樣問題就解決了。如下:
define("TOKEN", "wechat"); $wechatObj = new wechatCallbackapiTest(!isset($_GET['echostr']));
class wechatCallbackapiTest
{ public function __construct($IsInitMysql = '') { //如果做太多處理會導致校驗失敗。可能是因為耗時導致時間戳對不上了 if($IsInitMysql) { $this->LetcoreMysql = new LetcoreMysql();希望對在token驗證上困擾的同學有幫助,如果有更好的辦法請指教