2015-03-03 2 views
0

У меня есть PayPal интегрирован на моем сайте. На моем сайте есть форма, которая берет клиента в PayPal для завершения платежа, а затем возвращает его на мой сайт. Затем мой сайт отправляет запрос в PayPal с помощью токена транзакции для PDT, чтобы я мог выполнить несколько проверок, а затем автокредитовать мой клиент с продуктом, который они купили.Ошибка интеграции с PayPal HTTP

Система использует PHP и cURL для отправки всего процесса.

Когда я использую: "www.sandbox.paypal.com/cgi-bin/webscr"

Наряду с песочницы учетными все отлично работает, все.

После того, как я изменить все это "www.paypal.com/cgi-bin/webscr"

Это не работает, Мой код говорит мне, что запрос не удается. Мой код:

$pp_hostname = "www.paypal.com"; 

     // read the post from PayPal system and add 'cmd' 
     $req = 'cmd=_notify-synch'; 

     $tx_token = $_GET['tx']; 
     $auth_token = "#######-hashed_out_here-########"; 
     $req .= "&tx=$tx_token&at=$auth_token"; 

     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, "https://$pp_hostname/cgi-bin/webscr"); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $req); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
     //set cacert.pem verisign certificate path in curl using 'CURLOPT_CAINFO' field here, 
     //if your server does not bundled with default verisign certificates. 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: $pp_hostname")); 
     $res = curl_exec($ch); 
     curl_close($ch); 
     if(!$res){ 
       $this->twig->error("Request failed."); 
     }else{ 
      $lines = explode("\n", $res); 
      $keyarray = array(); 
      if (strcmp ($lines[0], "SUCCESS") == 0) { 
       for ($i='1'; $i<count($lines);$i++){ 
        $test = explode("=", $lines[$i]); 
        if(empty($test[1])){ 
         $keyarray[urldecode($test[0])] = ''; 
        }else{ 
         $keyarray[urldecode($test[0])] = urldecode($test[1]); 
        } 
       } 
       //give product 
      } else if (strcmp ($lines[0], "FAIL") == 0) { 
       $this->twig->error('Transaction failed!'); 
      } 
     } 

Не знаю, почему у меня проблема, так что я не знаю, как идти о фиксации. Моя учетная запись PayPal настроена как бизнес, включена функция PDT и IPN, а также Auto-Return

Похоже, что я получаю HTTP-ошибку, но которую я не могу сказать, если я запишу curl_error, это просто говорит «" и если я запишу curl_errno, я получу 0.

ответ

0

Мне удалось установить это. Это связано с тем, что мой сервер не установил сертификаты ssl, как только я это сделал, он работал нормально.

Смежные вопросы