2010-05-19 7 views
0

J'essaie de comprendre comment utiliser IPN de PayPal et j'ai couru dans un mur.PayPal IPN "FAIL"

Je souhaite qu'un acheteur soit redirigé vers une page de réussite après avoir effectué un achat, et je souhaite que cette page affiche les détails de leur transaction. Je choisis IPN au lieu de la PDT parce que je veux aussi faire d'autres choses en coulisses avec leurs données.

Quoi qu'il en soit, voici le code que j'utilise - je suis en train de tester en mode sandbox - mais il retourne "FAIL" à chaque fois.

$req = 'cmd=_notify-validate'; 
foreach ($_POST as $key => $value) { 
$value = urlencode(stripslashes($value)); 
$req .= "&$key=$value"; 
} 
// post back to PayPal system to validate 
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n"; 
$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; 

$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30); 

if (!$fp) { 
// HTTP ERROR 
} else { 
fputs ($fp, $header . $req); 
while (!feof($fp)) { 
$res = fgets ($fp, 1024); 
if (strcmp ($res, "VERIFIED") == 0) { 

// PAYMENT VALIDATED & VERIFIED! 

echo "Validated!"; 

} 

else if (strcmp ($res, "INVALID") == 0) { 

// PAYMENT INVALID & INVESTIGATE MANUALY! 

echo "Invalid!"; 

} 
} 
fclose ($fp); 
} 

Répondre

0

Je ne savais pas que le compte sandbox je mis en place était non vérifiée. J'ai refait le compte sandbox pré-configuré et ensuite il a commencé à fonctionner parfaitement.

0

i eu le même problème dans le test parce que ambience mon item_name a un caractère particulier, alors je changer item_name à seul mot anglais et le numéro. ça fonctionne bien.

mais dans la vraie je trouve encore enviroment ce problème, je lis les https://www.x.com/docs/DOC-1551, mais je ne sais toujours pas pourquoi

+0

Merci pour le conseil. Mon nom d'article est cependant entièrement en anglais, donc je ne pense pas que cela cause le problème. – HWD