微信退款失败错误记录
1,
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);一定要这是为false,curl默认对所有服务器不信任,设置为true是curl会提示
“SSL certificate problem: unable to get local issuer certificate”的错误,这句话意思是“SSl 无法验证服务器”。
不让SSL去验证,就没有问题
2,
apiclient_cert.pem、apiclient_key.pem这两个微信赏花api安全文件引入一定要用绝对路径
例如:
$xml=arrayToXml($refund); $ch = curl_init();//初始化curl curl_setopt($ch,CURLOPT_URL, $url); //curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验 //设置header curl_setopt($ch, CURLOPT_HEADER, FALSE); //要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //设置证书 //使用证书:cert 与 key 分别属于两个.pem文件 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT, dirname(__FILE__).'\..\..\apiclient_cert.pem'); curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLKEY, dirname(__FILE__).'\..\..\apiclient_key.pem'); //post提交方式 curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); $data = curl_exec($ch);