關鍵字:微信支付 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。