大家好,刚才写的文档用的在线云存储,谢了一大堆,保存成功了,但是我再次打开显示无法打开文件,我去,所以别用word.baidu.com这个东西了,有点可恨。
在微信开发中各位难免会被遇到各种各样的问题所困绕,官方的文档又那么乱,所以在下希望各位分享解决问题的经历,这里跪谢了。
好了废话不多说了。
首先情景重现:
我在使用官方DEMO的时候在退款时遇到的问题是如图所示:
在商户后台退款也发生了这个问题,不过提示说,证书无效。
其实最开始分析的是证书问题,但是在网上搜啊搜,网上的代码证书路径都是站点跟路径作为开始的,搞的我以为是其他问题。
在实在无法解决问题的同时又给腾讯打电话,又发邮件,终于!腾讯的技术回邮件了,告诉我要我安装证书,其实鸟蛋根本就不用。
其实解决问题的办法很简单,在官方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:\www\wwwroot\mysite\cacert\apiclient_cert.pem
将其设置位绝对路径,那么退款就OK了。