微信紅包接口調試過程當中一直提示「CA證書出錯,請登錄微信支付商戶平臺下載證書」,經反覆調試,大體解決方法以下:html
1.首先確保CA證書的路徑是否正確,必定得是絕對路徑,由於是PHP開發的,這裏須要三個pem證書api
2.確保服務器支持,新浪雲的sae,經測試支持不是很好,一直報錯,換用其餘服務器後,一次經過服務器
function post( $strXml) { $url='https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //由於微信紅包在使用過程當中須要驗證服務器和域名,故須要設置下面兩行 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 只信任CA頒佈的證書 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 檢查證書中是否設置域名,而且是否與提供的主機名匹配 curl_setopt($ch, CURLOPT_SSLCERT,'/var/www/html/hongbao/apiclient_cert.pem'); curl_setopt($ch, CURLOPT_SSLKEY,'/var/www/html/hongbao/apiclient_key.pem'); curl_setopt($ch, CURLOPT_CAINFO, '/var/www/html/hongbao/rootca.pem'); // CA根證書(用來驗證的網站證書是不是CA頒佈) curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $strXml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $res = curl_exec($ch); curl_close($ch); return $res; }