這是 SSL 證書問題所致,在使用 SDK 調用微信支付等相關的操作時可能會遇到報 “SSL certificate problem: unable to get local issuer certificate” 的錯誤。
微信公眾平台提供的文档中建議對部分較敏感的操作接口使用 https 協議進行訪問,例如微信支付和紅包等接口中涉及到操作商戶資金的一些操作。 wechat SDK 遵循了官方建議,所以在調用這些接口時,除了按照官方文档設置操作證書文档外,還需要保證服務器正確安裝了 CA 證書。
下載 CA 證書
你可以從 http://curl.haxx.se/ca/cacert.pem 下載 或者 使用微信官方提供的證書中的 CA 證書 rootca.pem 也是同樣的效果。
在 php.ini 中配置 CA 證書
只需要將上面下載好的 CA 證書放置到您的服務器上某個位置,然後修改 php.ini 的 curl.cainfo 為該路徑(絕對路徑!),重啓 php-fpm 服務即可。
curl.cainfo = /path/to/downloaded/cacert.pem
注意證書文档路徑為絕對路徑!以自己實際情況為準。
其它修改 HTTP 類源文档的方式是不允許的。