SAge Pay Curl并且无法解析主机

时间:2014-03-17 13:01:22

标签: php curl

我们的电子商务网站已经连续几年没有并且与sagepaye有关联。最近一天或两次我们得到卷曲错误'无法解决主持人'这是卷曲请求。

    $logger = Logger::getIntance();
    $logger->log($vsppost, Zend_Log::INFO);

    set_time_limit( 60 );                                                            
    $output = array();                                                               
    $output['Status'] = "FAIL";

    $curlsession = curl_init();                                                      

    curl_setopt( $curlsession, CURLOPT_URL, Config::Get( 'ProtxRegistrationURL' ) );
    curl_setopt( $curlsession, CURLOPT_HEADER, 0 );
    curl_setopt( $curlsession, CURLOPT_POST, 1 );
    curl_setopt( $curlsession, CURLOPT_POSTFIELDS, $vsppost );
    curl_setopt( $curlsession, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $curlsession, CURLOPT_TIMEOUT, 30 );
    curl_setopt( $curlsession, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt( $curlsession, CURLOPT_SSL_VERIFYHOST, 2 );

    $rawresponse = curl_exec( $curlsession );
    $_SESSION["rawresponse"] = $rawresponse;

    $logger->log(str_ireplace(chr(13).chr(10), ', ', $rawresponse), Zend_Log::INFO);

日志记录显示数据良好。事实上,我可以在一小时后看到相同的购买请求并且正在工作。

服务器负载不重,似乎没有连接问题。

有关问题或如何创建测试脚本以查找问题的任何想法。这真的是一个dns查找问题或一些卷曲问题。

1 个答案:

答案 0 :(得分:-1)

我目前遇到了同样的问题,到目前为止,它似乎被追溯到与使用ipv6查找执行SagePay服务器查找的本地DNS缓存服务器的某些不兼容。

我有3种方法可以在调查继续进行时缓解这种情况:

1)请求curl仅执行ipv4查找:

curl_setopt( $curlsession, CURLOPT_IPRESOLVE , CURL_IPRESOLVE_V4 );

2)将SagePay主机记录硬编码到/ etc / hosts中   - 根本不是很好/建议,好像他们根本就改变了ip地址,那么这将过时并指向错误的位置。

3)您可以尝试使用其他DNS缓存服务器,例如谷歌DNS服务器似乎没有这个问题(使用它们时没有遇到过这个问题)