在商户后台退款也发生了这个问题,不过提示说,证书无效。
其实最开始分析的是证书问题,但是在网上搜啊搜,网上的代码证书路径都是站点跟路径作为开始的,搞的我以为是其他问题。
在实在无法解决问题的同时又给腾讯打电话,又发邮件,终于!腾讯的技术回邮件了,告诉我要我安装证书,其实鸟蛋根本就不用。
其实解决问题的办法很简单,在官方DEMO中的文件WxPayPubHelper.php中,代码218行左右,将
curl_setopt($ch,CURLOPT_SSLCERT, WxPayConf_pub::SSLCERT_PATH); curl_setopt($ch,CURLOPT_SSLKEY,WxPayConf_pub::SSLKEY_PATH);
替换成
curl_setopt($ch,CURLOPT_SSLCERT, dirname(__FILE__) . '/cacert/apiclient_cert.pem'); curl_setopt($ch,CURLOPT_SSLKEY, dirname(__FILE__) . '/cacert/apiclient_key.pem');
其实就是绝对路径,
比如Linux /www/wwwroot/mysite/cacert/apiclient_cert.pem
比如Windows D:wwwwwwrootmysitecacertapiclient_cert.pem
将其设置位绝对路径,那么退款就OK了。