1. 程式人生 > >ecshop微信token驗證失敗 解決方法

ecshop微信token驗證失敗 解決方法

下面這些解決方法是通過某官方給出 的解決方法,然而

遇見所有方法都用上了,還是沒辦法解決問

看下

一:ec系統安裝時php環境版本最佳是5.2或5.3,如果你的php版本>5.3(這個很重要)

下面問題來了

allow_call_time_pass_reference 

在函式呼叫時引數被按照引用傳遞時是否發出警告。此方法已不被贊成並在 PHP/Zend 未來的版本中很可能不再支援。

5.4.0 從 PHP 中移除。
所以,

要麼降php版本到5.2 或 5.3

降不了版本的情況是下面 

二:CentOS 7.X系列已不支援php 5.2/5.3的版本,如要使用5.2/5.3的老版本,要使用6.X的OS

這時無法降版本,安裝官方說所加入allow_call_time_pass_reference = On行不通的情況下,那麼

就直接修改程式碼

當我們這樣使用函式(或者類)的話,會產生一個error:

foo(&$var);

實際上,這樣用本來就是錯的,只是之前的錯誤級別僅僅是Deprecated而已。

而正確的使用方法應該是在函式定義時:

function foo(& $var) {
   //other code
}

而在呼叫時直接傳參就行了: foo($var);
就安裝上面形式找到類似使用的位置進行修改,就可以了

小jd的問題在這個函式的引用上

$api->
keywordsToKey(

針對客戶在對接微信公眾號時,微信公眾號提交開發者時,提示token驗證失敗錯誤,測試處理方法:

         首先,確認域名是否備案成功,不是正式域名是不能支援配置的。

         其次,檢查伺服器上是否安裝:網站安全狗,360安全衛士,防火牆等軟體,此類軟體必須關閉。

         第三,微信Token與後臺填寫的Token不一致,一般預設設定為:qphp。

         第四,mobile目錄下weixin資料夾以及子檔案需要“777”許可權。

         第五,在mobile/weixin/index.php檔案下增加程式碼:echo $_GET['echostr'];exit;,如圖:(注意:提交成功後撤銷剛才新增的程式碼)

         

         第六,可能微信伺服器的響應存在快取,微信公眾平臺上多次提交微信或更換瀏覽器再次提交。

         第七,檢視下邊檔案的編碼格式:weixin資料夾下的index.php、  wechat.class.php  ,注意編碼格式要UTF-8的編碼格式。

         ,針對linux伺服器需要修改php.ini配置檔案:

               1. 在PHP.ini中搜索關鍵字 : allow_call_time_pass_reference 沒有的自行建立。

               2. 將 Off 改成 On ,Web Server重起就OK了,結果如下:

               allow_call_time_pass_reference = Off 變成 allow_call_time_pass_reference = On。

動手行動吧!