2010-03-10 11 views
2

J'utilise PayPal express en mode Sandbox dans mon script PHP (curl + SOAP). J'ai un simple formulaire d'achat avec 1 bouton "acheter". Quand il a cliqué j'envoyer la demande SetExpressCheckout initiale et obtenir une réponse Successfull de paypal avec Acc = succès et un nouveau jetonPayPal Express renvoie le message d'erreur 4011 en mode Sandbox

<Ack xmlns="urn:ebay:apis:eBLBaseComponents">Success</Ack> 
<Token xsi:type="ebl:ExpressCheckoutTokenType">EC-4GV76670YM092205U</Token></SetExpressCheckoutResponse> 

Ensuite, je suis en train de rediriger script PayPal avec ce nouveau jeton:

header("Location: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1"); 

mais comme résultat PayPal affiche une page avec un message d'erreur:

nous sommes désolés, nous éprouvons des difficultés temporaires. Veuillez réessayer plus tard. Si cette erreur s'est produite lors d'un paiement, évitez les paiements en double en consultant votre Présentation du compte avant de renvoyer un paiement. Message 4011

Qu'est-ce qui peut avoir causé cette erreur? J'utilise un simple compte US/USD Sandbox, la seule chose qui pourrait sembler suspecte est que dans la réponse paypal, les champs de nom d'utilisateur et de mot de passe xml sont vides.

Répondre

7

Cette erreur a été provoquée par l'utilisation des informations d'identification SandBox, lors de la redirection vers une URL non sandbox. Il aurait dû être header("Location: https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1");