63 votes

Paypal IPN retourne toujours "payment_status: Pending" sur sandbox?

Je suis en train de mettre en place PayPal sur mon site web.

J'utilise cette classe: http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

En ce moment, je teste en utilisant le sandbox PayPal.

Voici le problème:

  1. Utilisateur effectue le paiement - ok
  2. Utilisateur revient à mon site web avec succès - ok
  3. Après quelques secondes, PayPal appelle mon site web en utilisant IPN - ok
  4. Ma classe valide avec succès les données IPN entrantes.
  5. PayPal renvoie "payment_status: En attente"

Je ne sais pas pourquoi PayPal rappelle avec le statut de paiement "en attente"?

Est-ce que quelqu'un sait ce que je fais de mal?

0 votes

On dirait que cela devrait être "en attente"

0 votes

Il devrait être complet ? Je suis correct ? Paypal IPN devrait m'appeler pour m'informer si l'opération a été réussie ou non. en attente... en attente, cela signifie que je ne sais pas si c'est réussi, ce sera, quand, maintenant, demain, toujours

5 votes

Salut, Marc, as-tu trouvé la solution pour ça, j'ai le même problème

51voto

Wes Hanney Points 171

Lorsque vous êtes connecté à votre compte professionnel de test, accédez manuellement à :

https://www.sandbox.paypal.com/businessmanage/preferences/payments

Normalement, vous devriez pouvoir y accéder en passant par votre "Configuration de mon entreprise", mais actuellement cela redirige vers PayPal live (malgré le fait d'être dans le sandbox).

Une fois sur cette page, modifiez "Bloquer les paiements envoyés dans une devise que je ne possède pas" en "Non, les accepter et les convertir en ..."

N'oubliez pas de confirmer votre compte professionnel en utilisant l'interface PayPal Sandbox et la section "E-mail de test" de l'API.

0 votes

... et la section "Email de test" de l'API. Qu'est-ce que c'est?

15voto

h2ooooooo Points 18164

Mon problème était que mon compte marchand sandbox était créé en tant qu'utilisateur britannique (et en GBP comme devise). Lorsque j'ai essayé de passer des commandes en couronnes danoises (DKK), il m'a indiqué que l'achat était "Non réclamé" dans la vue marchand. Dès qu'une commande en DKK a été acceptée, et que j'ai choisi de créer une nouvelle devise en DKK, IPN m'a envoyé tous les messages "payment_status = complété".

0 votes

Est-ce le même problème avec le compte actif? J'ai un compte allemand (live) et je veux recevoir des paiements en US$ de la part des clients internationaux.

0 votes

@zoidbergi Je suppose que oui, mais pour tout ce que je sais, cette réponse est très dépassée. Je n'ai pas fait de choses liées à PayPal depuis des années. :)

10voto

Jadeye Points 321

Après avoir traité ce problème un peu & PayPal a changé l'interface utilisateur,

Voici les instructions exactes de l'Assistance Technique pour les Commerçants de PayPal:

Merci d'avoir contacté l'Assistance Technique pour les Commerçants.

Essayez de suivre les instructions ci-dessous pour désactiver la fonction de Révision des paiements pour votre compte Sandbox:

  • Allez sur le site des Développeurs PayPal
  • Connectez-vous à votre compte développeur
  • Cliquez sur Applications
  • Cliquez sur Comptes Sandbox
  • Cliquez sur l'adresse e-mail pour laquelle vous souhaitez désactiver l'option de Révision des paiements et cliquez sur Profil pour l'ouvrir
  • Cliquez sur Paramètres
  • Et sélectionnez Désactivé pour la Révision des paiements.
  • Cliquez sur Fermer

!!! Assurez-vous de faire cela sur votre Compte Marchand PayPal SandBox!

Et voici à quoi cela ressemble:

description de l'image

9voto

mouhammed Points 515

Vous pouvez résoudre cela en suivant les instructions suivantes.

  1. Connectez-vous à votre Central du développeur.

  2. Cliquez sur l'onglet Comptes de test à gauche. Vous devriez avoir créé ces comptes de test pour les tests sur le bac à sable.

  3. Recherchez la colonne 'Examen de paiement'.

  4. Recherchez le compte bac à sable que vous utilisez et cliquez sur "Activé" dans la colonne 'Examen de paiement'.

  5. Cela devrait passer à "Désactivé" et maintenant les paiements financés par votre solde et votre carte de crédit seront complétés instantanément.

0 votes

J'ai un problème similaire avec le PayPal sandbox. Mais cela ne fonctionne pas même si ces options sont désactivées.

2 votes

Mon problème source est décrit dans une réponse ci-dessous : cela ne fonctionne pas lorsque le vendeur et le formulaire de commande ont des devises différentes. Un bug stupide PayPal

0 votes

Je reçois toujours le statut de paiement en attente même après avoir suivi vos instructions et activé le compte.

7voto

Mangirdas Skripka Points 554

Deux raisons possibles :

1. Le compte vendeur a l'option d'accepter ou de refuser le paiement

Dans ce cas, vous devez vous connecter en tant que vendeur et accepter le paiement. Vous recevrez un autre IPN avec payment_status=Completed

Étapes :

  1. Connectez-vous à votre centre de développeur
  2. Cliquez sur "comptes de test" à gauche
  3. Sélectionnez le compte vendeur et cliquez sur "Entrer sur le site de test du sandbox" en bas
  4. Vous devriez voir le tableau de bord du vendeur avec l'option d'accepter ou de refuser tout paiement (vous pourriez avoir besoin de vous reconnecter à cette étape en utilisant les informations d'identification du compte de test vendeur)

2. La revue du paiement est activée

Solution :

  1. Connectez-vous à votre centre de développeur.
  2. Cliquez sur l'onglet "Comptes de test" à gauche. Vous devriez avoir créé ces comptes de test pour effectuer des tests sur le sandbox.
  3. Trouvez la colonne « Revue du paiement ».
  4. Recherchez le compte sandbox que vous utilisez et cliquez sur "Activé" dans la colonne « Revue du paiement ».

Cela devrait passer en "Désactivé" et maintenant les paiements financés par votre solde et par carte de crédit seront complétés instantanément.

1 votes

J'ai défini "Bloquer les paiements envoyés dans une devise que je ne détiens pas" sur "Non, les accepter et les convertir en dollars américains". La revue de paiement est désactivée pour tous mes comptes de test. Cependant, les notifications complètes ne se produisent pas lorsque qu'un utilisateur de test paie avec la devise ILS (Israélienne). Cela fonctionne bien avec les paiements en USD. Quel est maintenant le problème?

1 votes

J'ai vérifié les deux et c'est toujours en attente - y a-t-il d'autres raisons ? :/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X