微信公衆號紅包接口開發PHP開發 CA證書出錯,請登錄微信支付商戶平臺下載證書

微信紅包接口調試過程當中一直提示「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;
}
相關文章
相關標籤/搜索