這是 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 類源文档的方式是不允許的。