微信支付curl出错及错误码解决方案
2023-09-14 08:56:56 时间
关键字:微信支付 curl出错 错误码6 错误码7 错误码28 错误码52 错误码58 错误码60 错误码77
作者:方倍工作室
原文: http://www.cnblogs.com/txw1958/p/wxpay-curl-error.html
本文介绍微信支付开发集成过程中,常见的错误码及其解决方案。
1. curl错误码6
出现场景
PHP Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:6' in WxpayAPI_php_v3/lib/WxPay.Api.php:565
Stack trace:
#0 WxpayAPI_php_v3/lib/WxPay.Api.php(62): WxPayApi::postXmlCurl('<xml><appid><![...', 'https://api.mch...', false, 6)
#1 WxpayAPI_php_v3/cyzjqpzf/jsapi.php(83): WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder))
#2 {main}
thrown in WxpayAPI_php_v3/lib/WxPay.Api.php on line 565
[10-Oct-2015 16:50:58 Asia/Shanghai] PHP Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:6' in WxpayAPI_php_v3/lib/WxPay.Api.php:565
Stack trace:
#0 WxpayAPI_php_v3/lib/WxPay.Api.php(62): WxPayApi::postXmlCurl('<xml><appid><![...', 'https://api.mch...', false, 6)
#1 WxpayAPI_php_v3/cyzjqpzf/jsapi.php(83): WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder))
#2 {main}
thrown in WxpayAPI_php_v3/lib/WxPay.Api.php on line 565
原因分析
CURLE_COULDNT_RESOLVE_HOST(6)
无法解析主机。给定的远程主机没有得到解决。
解决方法
dns解析不了微信的域名,检查本地的dns服务器,或者在本地强制解析
vi etc/hosts
添加下面内容
101.227.143.34 open.weixin.qq.com
101.226.90.149 api.mch.weixin.qq.com
101.226.90.58 api.weixin.qq.com
2. curl错误码60
出现场景
如下是运行微信支付测试代码时出错代码:
Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in C:\wwwroot\fangbei\lib\WxPay.Api.php:564 Stack trace: #0 C:\wwwroot\fangbei\lib\WxPay.Api.php(62):
WxPayApi::postXmlCurl(‘<xml><appid><![...‘, ‘https://api.mch...‘, false, 6) #1 C:\wwwroot\fangbei\pay\jsapi.php(36):
WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in C:\wwwroot\fangbei\lib\WxPay.Api.php on line 564
原因分析
证书校验失败
解决方法
第538行
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
修改为
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验
3. curl错误码58
出现场景
Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:58' in C:\wamp\www\API\lib\WxPay.Api.php on line 565 WxPayException: curl出错,错误码:58 in C:\wamp\www\API\lib\WxPay.Api.php on line 565 证书路径正...
原因分析
证书路径错误
解决方法
windows服务器上证书路径使用绝对路径。
curl_setopt($ch, CURLOPT_SSLCERT, dirname(__FILE__).'cert'.DIRECTORY_SEPARATOR.'apiclient_cert.pem');
curl_setopt($ch, CURLOPT_SSLKEY, dirname(__FILE__).'cert'.DIRECTORY_SEPARATOR.'apiclient_key.pem');
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__).'cert'.DIRECTORY_SEPARATOR.'rootca.pem');
Linux上使用相对路径
curl_setopt($ch, CURLOPT_SSLCERT, 'cert'.DIRECTORY_SEPARATOR.'apiclient_cert.pem');
curl_setopt($ch, CURLOPT_SSLKEY, 'cert'.DIRECTORY_SEPARATOR.'apiclient_key.pem');
curl_setopt($ch, CURLOPT_CAINFO, 'cert'.DIRECTORY_SEPARATOR.'rootca.pem');
4. curl错误码52
出现场景
原因分析
证书路径错误
解决方法
方法同错误码58
5. curl错误码77
出现场景
略
原因分析
证书路径错误
解决方法
方法同错误码58
6. curl错误码28
出现场景
支付curl出错,错误码:28 /wxpay_native/WxPay.Api.php LINE: 563 /wxpay_native/WxPay.Api.php(61):WxPayApi::postXmlCurl(' #1
原因分析
CURLE_OPERATION_TIMEDOUT(28)
操作超时。根据条件达到指定的超时期间。
解决方法
服务器网络和微信服务器连接时间太久,网速问题。
或者将超时时间设置长一些。比如将超时时间改为60
function postXmlCurl($xml, $url, $useCert = false, $second = 60)
相关文章
- 关于微信网页版WeChat不能正常登录的最佳解决方案
- 【说站】动态图大全带文案支持收藏微信小程序源码
- 【说站】胡言乱语生成器微信小程序源码 在线取名等支持流量主收益
- 微信小程序PC端正常,真机调试与手机端报错ERR_CERT_AUTHORITY_INVALID
- 【微信小程序】快速入门学习笔记
- 微信汽配电商小程序开发功能设计方案
- OnD1操练纪要-微信朋友圈权限领域建模操练
- 微信开发平台donut多纳
- 用python检测微信好友是否删除自己
- 微信小程序订阅消息
- 微信企业号开发:微信考勤2如何计算距离详解手机开发
- 微信小程序保存海报的方法详解手机开发
- javascript IOS 微信jssdk {“errMsg”:”config:fail”} 解决方案详解编程语言
- [开源软件] 微信PC版多开/语音备份工具SuperWeChatPC介绍和下载
- 微信搜一搜品牌官方区内测全新轮播运营卡片
- 海淀检察院为什么要对微信提起公益诉讼?
- 能理解聊天记录的微信机器人 (二)
- 文件传输有改进 微信电脑版新版详细体验