1、到微信支付官网下载微信支付SDK包(php版本)
2、在Windows server 2019 或 Cent OS 系统上安装部署apache或nginx+php+mysql 开发和运行环境
3、将微信支付SDK解压到步骤2部署好的web服务器上。此时,不需要写任何额外的代码,只需要将微信sdk包的相关配置信息,填写成您申请到的支付账号信息,或微信支付的沙盒信息即可。微信支付SDK配置信息有详细的注释,一步步按照注释进行配置。
4、一切准备就绪之后,在浏览器访问微信sdk包里头的index.php。例如:在浏览器地址栏打开:https://www.sanpdf.com/wxpay/index.php (请按照自己的实际需求修改部署后的域名地址)。通常的情况下,微信支付是不会报curl 出错了,错误码:60,错误码:58等信息。错误信息“PHP Fatal error: 'curl_ssl请求失败,错误码:60,错误信息:Could not resolve host: api.mch.weixin.qq.com”
5、起初,我也以为是微信支付的SDK可能存在BUG。在网上找了很多解决办法都是千篇一律,一致认为要把这两行代码curl_setopt($ch,CURLOPT_SSL_VERIFYPE呶蓟鹭毵ER,TRUE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验修改成:curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验2”仔细琢磨之后,我想微信开发团队不可能存在这么“低级”错误,SDK没测试通过就敢丢网上给大家使用?CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST是要求验证“通信双方身份”是否合法?也就是说采用https证书通信的时候,可以通过验证对方的证书是否正确来核对身份,确保接下来的通信是安全的。如果将这2句改为FALSE就会导致curl不再核实对方的身份有效性,直接把购买订单,退款等信息进行传输。到此,您应该没明白为什么不能直接改成FALSE了吧?
6、最后,因为有些系统下,CA根证书被删除了,导致无法正常解析SSL证书链。正确的解决办法是:从https://curl.haxx.se/ca/cacert.pem这个地方下载最新的CA证书,并且打开编辑php.ini文件,大概在这个文件的末尾找到[curl]这个节添加如下配置:curl.cainfo=/path/curlca/cacert.pem(路径自行修改为你服务器上正确的路径)微信开发人员的注释:“//严格校验” ,我们必须得遵守才能保证安全。