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


    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:wwwrootfangbeilibWxPay.Api.php:564 Stack trace: #0 C:wwwrootfangbeilibWxPay.Api.php(62): 
    WxPayApi::postXmlCurl(‘<xml><appid><![...‘, ‘https://api.mch...‘, false, 6) #1 C:wwwrootfangbeipayjsapi.php(36): 
    WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in C:wwwrootfangbeilibWxPay.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:wampwwwAPIlibWxPay.Api.php on line 565 WxPayException: curl出错,错误码:58 in C:wampwwwAPIlibWxPay.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)
  • 相关阅读:
    在 Xcode 6 中使用矢量图( iPhone 6 置配 UI)
    在Xcode中使用Git进行源码版本控制
    UIAlertController Changes in iOS 8
    iOS8需要兼容的内容
    iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)
    一些被提问频率最高的12个php面试题,以及对应的常规回答。
    MYSQL 优化常用方法(转载)
    mysql 性能优化方案 (转)
    练手mysqlbinlog日志恢复数据(centos6.5 64,mysql5.1)
    cnblogs博客申请完毕,以后再这里安家落户
  • 原文地址:https://www.cnblogs.com/jhy-ocean/p/6125974.html
Copyright © 2020-2023  润新知