Я должен проверить статус платежа через PayPal.
Мой код работает хорошо, если пользователь оплачивает через PayPal свою учетную запись PayPal. Но у меня проблема с оплатой кредитной картой на сайте PayPal.
$req = 'cmd=_notify-validate';
foreach($_POST as $key=>$value){
$value = urlencode(stripslashes($value));
$value = preg_replace('/(.*[^%^0^D])(%0A)(.*)/i','${1}%0D%0A${3}',$value);// IPN fix
$req .= "&$key=$value";
}
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);
//$fp = fsockopen('ssl://sandbox.paypal.com', 443, $errno, $errstr, 30);
if(!$fp){
die("HTTP ERROR");
}else{
fputs($fp, $header . $req);
while(!feof($fp)){
$res = fgets($fp, 1024);
if(strtoupper(trim($res)) == "VERIFIED"){
//i can save the payment in my table
}
}
}
Проблема, которую я заметил, заключается в том, что при оплате кредитной картой я не получаю ПОДТВЕРЖДЕННЫЙ ответ.
Почему?
Я пытался напечатать переменную $ res, но получаю много разных значений