У меня есть 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.