J'implémente Paiement express dans Paypal.
Je n'ai aucun problème avec les deux premières étapes, SetExpressCheckout
et GetExpressCheckout
. Mais lorsque j'utilise DoExpressCheckout
, je rencontre l'erreur "L'en-tête de sécurité n'est pas valide".
Les informations d'identification de l'API sont les mêmes!
Je l'ai corrigé en changeant le $environment
à live
dans DoExpressCheckout
. (La différence $environment
fait est qu'il utilisera https://api.sandbox.Paypal.com/nvp/
au lieu de https://api-3t.$environment.Paypal.com/nvp
)
Mais pourquoi?
Y a-t-il un problème avec https://api-3t.$environment.Paypal.com/nvp
?
https://api-3t.sandbox.Paypal.com/nvp nécessite des comptes d'utilisateurs différents de ce que https://api-3t.Paypal.com/nvp nécessite .
Les comptes sandbox peuvent être activés sur developer.Paypal.com
J'ai eu la même erreur lors de l'environnement live. Pour moi, il s'est avéré qu'il y avait un espace à la fin de mon nom d'utilisateur API .... J'ai supprimé l'espace et cela a bien fonctionné .... Je les ai collés dans un fichier de configuration directement depuis Paypal et j'ai dû copié un espace là aussi ... donc si cela vous arrive, vérifiez les espaces de fuite! Cela aurait été évident si le nom d'utilisateur avait été codé en dur dans une chaîne, mais pas parce qu'il était dans un fichier de propriétés Java.
notez que vous obtiendrez également cette erreur si vos informations d'identification sont incorrectes (c.-à-d. mauvais nom d'utilisateur, mot de passe ou signature). J'ai juste eu le même problème lorsque j'ai collé mes informations dans un fichier de configuration et j'ai eu des caractères supplémentaires à la fin de ma signature par erreur.
Il ne peut pas autoriser le paiement. Reportez-vous à cet article , apparemment en panne pour l'instant mais toujours disponible ici .