【问题标题】:SSL Error in payment process using CURL使用 CURL 的支付过程中出现 SSL 错误
【发布时间】:2012-11-20 22:54:49
【问题描述】:

我正在尝试在 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);

谁能帮帮我?在此先感谢:)

【问题讨论】:

    标签: php ssl curl


    【解决方案1】:

    谢谢各位。最后我通过在 curl 中添加以下行得到了解决方案。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 感谢您的回复..当我尝试直接从 url 访问时,我可以看到付款页面。例如,如果我的付款请求网址是 mypaymentserver.com/?data=... 当我复制此网址并将其粘贴到浏览器中时,我可以看到我的付款页面。
      • 同样的代码在我的本地也能完美运行。我已成功重定向到我的支付服务器。但问题出在我的演示服务器上
      猜你喜欢
      • 2010-11-11
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 2015-12-11
      • 2016-01-08
      • 2018-09-06
      • 2017-04-29
      • 2018-02-10
      相关资源
      最近更新 更多