使用CURL的付款流程中的SSL错误

时间:2012-12-03 13:04:16

标签: php ssl curl

我正在尝试在php中进行支付网关集成。当我做测试模式从本地支付过程付款工作正常。我已成功重定向到我的付款页面。我已使用CURL将数据发布到付款网关服务器。

但是上传到服务器后我无法付款。我收到以下错误。 SSL连接错误(35)

我的代码如下。

$request_url= "https://mypaymentserver.com"
$url = $request_url;
$successurl = url::site('payment/textpartnerssuccess', 'http');               
$processurl = url::site('payment/textpartnersprocess', 'http');
$failurl = url::site('payment/textpartnersfail', 'http'); 

//Data bind
$invoiceno = commonfunction::randomkey_generator();
$postData = array(
    "url_succesfull" => $successurl,
    "url_process" => $processurl,
    "url_cancel" => $failurl,
    "item_id" => $jobid,
    "name" => $jobdetails[0]['job_title'],
    "currency" => $this->textpartners_currencycode,
    "price" => $amount,
    "token" => $invoiceno,
    "seller_op_id" => time(),
    "shipping_cost" => 0
);

$data = http_build_query($postData, NULL, '&');

// Create a new curl instance
$curl = curl_init();

// Set curl options
curl_setopt_array($curl, array(
    CURLOPT_URL            => $url,
    CURLOPT_POST           => TRUE,
    CURLOPT_POSTFIELDS     => $data,
    CURLOPT_SSL_VERIFYPEER => FALSE,
    CURLOPT_SSL_VERIFYHOST => FALSE,
    CURLOPT_RETURNTRANSFER => TRUE,
));

if (($response = curl_exec($curl)) === FALSE)
{
    // Get the error code and message
    $code  = curl_errno($curl);
    $error = curl_error($curl);

    curl_close($curl);// Close curl

    echo $error_msg = 'Payment API request for  failed: '.$error.'(' .$code.')';    exit;   
    Message::error($error_msg);

    // Parse the response
parse_str($response, $data);
}

curl_close($curl); // Close curl

// Parse the response
parse_str($response, $data);

任何人都可以帮助我吗?在此先感谢:)

2 个答案:

答案 0 :(得分:0)

  

但是上传到服务器后我无法付款

当客户端无法连接到SSL服务器时(由于超时或协议错误),将报告错误35。检查服务器是否可以解析名称,与指定主机建立传出连接,以及是否跨端口443建立传出连接。

答案 1 :(得分:0)

谢谢你们。最后,我通过在curl中添加以下行来获得解决方案。

curl_setopt($ ch,CURLOPT_SSL_CIPHER_LIST,'rsa_rc4_128_sha');