微信支付curl出错及错误码解决方案

关键字:微信支付 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)
时间: 2024-10-26 13:56:37

微信支付curl出错及错误码解决方案的相关文章

微信支付:curl出错,错误码:60 阿星小栈

最近一个微信项目用到微信支付系统,在微信官方下载了一个官方的demo.运行后竟然报错. Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php:564 Stack trace: #0 D:\wwwroot\weixinpaytest\lib\WxPay.Api.php(62): WxPayApi::post

微信支付错误两个问题的解决:curl出错,错误码:60

如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99 Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in D:\wwwroot\weixinpa

黄聪:微信支付错误两个问题的解决:curl出错,错误码:60

如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99 Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in D:\wwwroot\weixinpa

微信支付:curl出错,错误码:60

1.  微信支付SDK下载地址 平台和语言 说明 支付模式 操作 JAVA [微信支付]API对应的SDK和调用示例 刷卡支付 下载 .NET C# [微信支付]API对应的SDK和调用示例 刷卡支付.微信内网页支付.扫码支付 下载 PHP [微信支付]API对应的SDK和调用示例 刷卡支付.微信内网页支付.扫码支付 下载 IOS IOS头文件和库下载 APP支付 下载 [微信支付]APP支付示例 下载 Android Android头文件和库下载 APP支付 下载 [微信支付]APP支付示例

微信支付出错 Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in ....解决办法

这个错误通过修改文件WxPay.Api.php 解决,具体如下: 第537行 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验 to curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验2

iOS微信支付demo运行报错解决如下

要接入微信支付的小伙伴,首先要下载一份官方demo(APP微信支付官方Demo下载),然后打开工程,准备大干一场. 1.编译报错 编译的时候居然直接报错了(orz) 错误提示: APP微信支付官方Demo报错 解决方法:添加CFNetwork.framework 库选中项目名称 -> 选中TARGETS -> 选中Build Phases -> 在Link Binary With Libraries中添加 -> 点击"+"号,加入CFNetwork.framew

cURL函数库错误码说明之PHP curl_errno函数

背景概述:游戏接口是使用PHP cURL扩展进行请求操作.但是,被请求的服务器经常会无故的不响应或者超时.总之,就是请求之后收不到响应回来的数据.这时候可不能说对方API接口有问题,或者,服务器有故障.总之,可能出现的问题是非常之多.不能一概而论. 一.给出一段常用的PHP cURL代码: function sendRequestGame($url) { $header = array('Expect:'); $ch = curl_init(); curl_setopt($ch, CURLOPT

curl返回常见错误码

1 转自:http://blog.csdn.net/cwj649956781/article/details/8086337 2 3 CURLE_OK(0) 4 5 所有罚款.继续像往常一样. 6 7 CURLE_UNSUPPORTED_PROTOCOL(1) 8 9 你的URL传递给libcurl的使用协议,这libcurl的不支持.支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码. 10 11 12 13 CURLE_FAILED

微信支付 常见报错

支付返回签名错误 注意签名参数的大小写,支付密钥key要到商户平台设置,设置的规则是32位数字与字母大小写的组合.以下链接为签名过程.(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=3_1) 支付回调 认证后的服务号之间支持跨号支付. 支付失败 请检查商户号是否错误或支付密钥key设置错误. redirect--uri参数错误 请进入公众平台-开发者中心,找到填写商户的支付授权域名,填写的就是商户支付授权目录上的域名. pays