微信退款報錯 400 the ssl certificatie error / no required SSL certificate was sent ; Guzzle json_encode Type is not supported;


bug隨筆

一 起因。

    在做一個點餐類小程序,本地測試ok。上測試的時候,突然就報錯,微信退款失敗。

二 Debug。

     1. Debug trace到頁面直接顯示的是 : Type is not supported。一個莫名其妙的錯誤。

     2. 定位代碼,發現用的是 easywechat 庫。以為是測試環境 composer 安裝錯了版本,或依賴庫有沖突。於是重新安裝,無果。

     3. 網上搜羅了一下,Guzzle json_encode Type is not supported; 出來有價值的答案是 StackOverflow的前2條。 仔細看了回答,又對比了代碼,發現不了問題。

     4. 嘗試不用 easywechat庫,使用微信支付SDK,結果調用微信退款,報錯 400 the ssl certificatie error; 

     5. 遂在微信開放社區搜索答案,但發現官方回答並不夠清晰,很多答案基本是這樣,然底下評論都在追問如何填寫。

 

    6. 發現是證書路徑問題后,決定先使用 file_get_contents() 檢查所填路徑是否能夠讀取到文件。結果發現路徑下並無文件。

    7. 問題一下明確了,再深入排查,發現點餐系統的會將 所填寫的微信配置,放入到 runtime/ 里面,然后后台有個清理緩存功能,點了清理后,runtime下所有文件被刪除。真相大白。重新將證書放入到此目錄后,問題解決。

三 反思。

    1. Guzzle json_encode Type is not supported; 這個錯誤, StackOverflow 給出的解決方案是正確的。但是,並不適合我遇到的情況,嘗試了上面給的方案,依舊無效。

    2. 微信退款,報錯 400 the ssl certificatie error;這個錯誤的排查方式是:首先,確保 證書 放在了可讀寫目錄,可使用 file_get_contents() 檢查所填路徑是否能夠讀取到文件 ;其次,使用SDK時,需要配置 app_id , secret_key,證書路徑等參數, 此時最好填上證書絕對路徑。

完。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM