微信支付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)

 

 

9. 微信支付代碼

方倍工作室付費提供可用的微信支付V3代碼,費用100元,聯系QQ 1354386063。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM