·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz!设置微信支付curl出错及错误码解决方案

457 1
发表于 2020-7-10 15:35:43 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


1. curl错误码6
出现场景
[url=] Discuz!设置微信支付curl出错及错误码解决方案 设置,微信,支付,解决方案,curl [/url]
PHP Fatal error:  Uncaught exception 'WxPayException' with message 'curl出错,错误码:6' in WxpayAPI_php_v3/lib/WxPay.Api.php:565Stack 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:565Stack 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[url=][/url]

原因分析
CURLE_COULDNT_RESOLVE_HOST(6)
无法解析主机。给定的远程主机没有得到解决。
解决方法
dns解析不了微信的域名,检查本地的dns服务器,或者在本地强制解析
[url=][/url]
vi  etc/hosts添加下面内容101.227.143.34 open.weixin.qq.com101.226.90.149 api.mch.weixin.qq.com101.226.90.58 api.weixin.qq.com[url=][/url]


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
出现场景
Discuz!设置微信支付curl出错及错误码解决方案 设置,微信,支付,解决方案,curl
原因分析
证书路径错误
解决方法
方法同错误码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)

我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论1

Discuz智能体Lv.8 发表于 2025-3-19 00:17:29 | 查看全部
在Discuz!中设置微信支付时,如果遇到`curl出错,错误码:6`,这通常是由于cURL无法解析目标域名或网络连接问题导致的。以下是详细的解决方案:

### 1. 错误码6的含义
cURL错误码6表示`CURLE_COULDNT_RESOLVE_HOST`,即无法解析主机名。这意味着cURL无法将域名解析为IP地址,可能是由于DNS配置问题、网络连接问题或目标服务器不可用。

### 2. 解决方案

#### 2.1 检查网络连接
确保服务器能够正常访问外部网络,尤其是微信支付的API域名(如`api.mch.weixin.qq.com`)。可以通过以下命令测试:
  1. ping api.mch.weixin.qq.com
复制代码

如果无法ping通,可能是服务器网络配置问题,需要联系服务器管理员检查网络设置。

#### 2.2 检查DNS配置
确保服务器的DNS配置正确。可以通过以下命令检查DNS解析是否正常:
  1. nslookup api.mch.weixin.qq.com
复制代码

如果无法解析域名,可以尝试修改服务器的DNS配置,使用公共DNS(如Google的`8.8.8.8`或`8.8.4.4`)。

#### 2.3 检查服务器防火墙
确保服务器的防火墙没有阻止对微信支付API域名的访问。可以通过以下命令检查防火墙规则:
  1. iptables -L -n
复制代码

如果有相关规则阻止访问,可以临时关闭防火墙进行测试:
  1. systemctl stop firewalld
复制代码


#### 2.4 检查cURL配置
确保PHP的cURL扩展已正确安装并启用。可以通过以下命令检查:
  1. php -m | grep curl
复制代码

如果没有输出`curl`,则需要安装cURL扩展:
  1. sudo apt-get install php-curl
  2. sudo systemctl restart apache2
复制代码


#### 2.5 检查微信支付配置
确保在微信支付配置中填写的域名和API地址正确无误。可以在`WxpayAPI_php_v3/lib/WxPay.Api.php`文件中检查相关配置:
  1. const URL = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
复制代码

确保URL正确,并且没有拼写错误。

#### 2.6 调试代码
在`WxPay.Api.php`文件中,找到抛出异常的代码段(如第565行),添加调试信息以查看具体的错误原因:
  1. curl_setopt($ch, CURLOPT_VERBOSE, true);
  2. curl_setopt($ch, CURLOPT_STDERR, fopen('curl_debug.log', 'w+'));
复制代码

运行代码后,查看`curl_debug.log`文件中的详细日志,以获取更多信息。

### 3. 总结
通过以上步骤,可以逐步排查并解决`curl出错,错误码:6`的问题。如果问题仍然存在,建议联系服务器管理员或微信支付技术支持,进一步排查网络或服务器配置问题。

如果你有其他问题或需要进一步的帮助,请随时联系DZ插件网(https://www.dz-x.net/)的技术支持团队。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:52.14.3.26,GMT+8, 2025-4-4 03:00 , Processed in 0.550805 second(s), 81 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表