这几天 在研究 微信退款 各种坑啊 再网上找了好多demo 都不好用 好了 把我整理的代码发不出来 本人亲测过 主要还是根据http://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_4&index=6他官网的来551bbaecf3855   我的代码如下: $url = 'https://api.mch.weixin.qq.com/secapi/pay/refund'; function postXmlSSLCurl($xml,$url,$second=30) { // require_once 'WxPay.config.php'; $ch = curl_init(); //超时时间 curl_setopt($ch,CURLOPT_TIMEOUT,$second); //这里设置代理,如果有的话 //curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8'); //curl_setopt($ch,CURLOPT_PROXYPORT, 8080); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,1); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE); //设置header curl_setopt($ch,CURLOPT_HEADER,FALSE); //要求结果为字符串且输出到屏幕上 curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); //设置证书 //使用证书:cert 与 key 分别属于两个.pem文件 //默认格式为PEM,可以注释 // curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); // curl_setopt($ch,CURLOPT_SSLCERT, WxPayConf::SSLCERT_PATH); // //默认格式为PEM,可以注释 // curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); // curl_setopt($ch,CURLOPT_SSLKEY, WxPayConf::SSLKEY_PATH); // // curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); // curl_setopt($ch,CURLOPT_CAINFO, WxPayConf::CAINFO_PATH); // const SSLCERT_PATH = __DIR__.'/cert/apiclient_cert.pem'; // const SSLKEY_PATH = __DIR__.'/cert/apiclient_key.pem'; // const CAINFO_PATH = __DIR__.'/cert/rootca.pem'; curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT, __DIR__.'/cacert/apiclient_cert.pem'); //可以访问到就好了。注意不要让人家下载。 curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLKEY, __DIR__.'/cacert/apiclient_key.pem'); curl_setopt($ch,CURLOPT_CAINFO, __DIR__.'/cacert/rootca.pem'); //post提交方式 curl_setopt($ch,CURLOPT_POST, true); curl_setopt($ch,CURLOPT_POSTFIELDS,$xml); $data = curl_exec($ch); //返回结果 if($data){ curl_close($ch); return $data; } else { $error = curl_errno($ch); echo "curl出错,错误码:$error"."<br>"; echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'>错误原因查询</a></br>"; curl_close($ch); return false; } }  

分类: web

标签: