Разгледах много, ако не и всички въпроси в Stackoverflow за отговор на това и не можах да го намеря.
Имам проблем с PayPal IPN. Тествам го с помощта на sanbox и IPN Simulator. Също така използвам PHP и cURL, за да проверя отговора, идващ от PayPal. Но получавам само НЕВАЛИДЕН резултат от отговора. Изглежда не мога да се ПРОВЕРЯ.
Мисля, че проблемът е, че не изпращам обратно ТОЧНИЯ URL към PayPal. Можете да видите моя код по-долу за IPN Listener:
<?php
require_once('../includes/main.php');
// Prepare the URL to send via cURL
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')) {
$get_magic_quotes_exists = true;
}
foreach ($_POST as $key => $value) {
if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) {
$value = urlencode(stripslashes($value));
} else {
$value = urlencode($value);
}
$req .= "&$key=$value";
}
// Initial cURL
$ch = curl_init();
// Set opt
curl_setopt($ch,CURLOPT_URL,"https://www.sandbox.paypal.com/cgi-bin/webscr");
//curl_setopt($ch,CURLOPT_URL,"https://www.paypal.com");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
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);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
// Return result
$result = curl_exec($ch);
// Close cURL connection
curl_close($ch);
// If condition
if(strpos($result, "VERIFIED") != false){
mysql_query("INSERT INTO paypal_ipn (ipn_message, verification) VALUES ('{$request}', '{$result}')");
}else{
mysql_query("INSERT INTO paypal_ipn (ipn_message, verification) VALUES ('{$request}', '{$result}')");
}?>
var_dump($result)
и вижте ли какво има в него? - person frz3993   schedule 21.05.2016var_dump
беше равно на NULL. и резултатът все още е НЕВАЛИДЕН - person FarrisFahad   schedule 22.05.2016