J'essaie d'implémenter Paypal sur mon site web.
J'utilise cette classe: http://www.micahcarrick.com/php-Paypal-ipn-integration-class.html
En ce moment, je teste avec le bac à sable Paypal.
Voici le problème:
Je ne sais pas pourquoi Paypal IPN rappelle avec le statut de paiement "en attente"?
Est-ce que quelqu'un sait ce que je fais mal?
Lorsque vous êtes connecté à votre compte professionnel test, accédez manuellement à:
https://www.sandbox.Paypal.com/ca/cgi-bin/?cmd=_profile-pref&source=acct_setup&fli=true
Vous pourriez normalement y arriver en passant par votre "Configuration de mon entreprise" mais actuellement, il redirige vers Paypal en direct (même s'il se trouve dans le bac à sable).
Une fois que vous êtes sur cette page, remplacez "Paiements en bloc qui me sont envoyés dans une devise que je ne détient pas" par "Non, acceptez-les et convertissez-les en ...".
De plus, n'oubliez pas de confirmer votre compte professionnel à l'aide de l'interface frontale Paypal Sandbox et de la section "E-mail de test" de l'API.
Mon problème était que mon compte marchand sandbox a été créé en tant qu'utilisateur britannique (et en GBP comme devise). Lorsque j'essayais d'exécuter des commandes en couronnes danoises (DKK), cela me disait que l'achat était "non réclamé" du point de vue du commerçant. 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 = completed".
Après avoir traité ce problème un peu et Paypal changer l'interface utilisateur,
Voici les instructions exactes du Support Technique Paypal Merchant:
Merci de contacter le support technique marchand.
Essayez de suivre les instructions ci-dessous pour désactiver la fonction de vérification des paiements pour votre compte Sandbox:
!!! Assurez-vous de le faire sur votre compte Paypal SandBox Merchant!
Et voilà à quoi ça ressemble:
Vous pouvez le résoudre en suivant les instructions suivantes.
Connectez-vous à votre centre de développement.
Cliquez sur l'onglet Test Accounts à gauche. Vous devriez avoir créé ces comptes de test pour tester sur Sandbox.
Recherchez la colonne "Vérification du paiement".
Recherchez le compte sandbox que vous utilisez et cliquez sur «Activé» dans la colonne «Vérification des paiements».
Cela devrait passer à «Désactivé» et les paiements financés à partir de votre solde et de votre carte de crédit seront désormais terminés instantanément.
Deux raisons possibles:
1. le compte du 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 obtiendrez un autre IPN avec payment_status = Completed.
Pas:
2. La vérification du paiement est activée
Solution:
Cela devrait passer à «Désactivé» et les paiements financés à partir de votre solde et de votre carte de crédit seront désormais terminés instantanément.
J'ai fait modifierAllow payments sent to me in a currency I do not hold
à Yes
dans tous les comptes d'utilisateur dans le bac à sable, mais cela ne fonctionnait toujours pas.
J'ai également essayé de créer les mêmes devises dans le formulaire Paypal et pour les comptes d'utilisateurs sandbox ici Rendre la nouvelle devise principale. Conversion de l'argent dans la nouvelle monnaie. Toujours pas de succès.
Ensuite, j'ai remarqué la dernière phrase de la réponse de Wes Hanney: "confirmez votre compte professionnel en utilisant le frontal Paypal Sandbox". _ { Essayer ceci _ n'a pas fonctionné non plus.
M.G. Palmer a suggéré dans sa réponse de créer un compte marchand allemand. N'a pas travaillé non plus.
Quelle galère!
Après une heure, alors que j'étais sur le point de jeter le PC par la fenêtre, je venais de réaliser que j'avais oublié une chose. Changer mon adresse e-mail de destinataire réel dans le formulaire Paypal en une adresse e-mail de marchand sandbox. Cela a finalement résolu le problème pour moi.
PS: Peut-être une stupide erreur de débutant? Mais pourrait être utile pour d'autres qui rencontrent la même situation.
J'ai eu le même problème, et aucune de la suggestion ici ne fonctionnait. Ensuite, j'ai réalisé que le problème était que j'essayais d'effectuer un paiement à partir d'un compte en bac à sable sur un compte réel. Ainsi, par exemple, si votre compte professionnel enregistré est: [email protected]
, tous les paiements en mode bac à sable doivent être effectués en [email protected]
, sinon ils se retrouveront en mode PENDING.
Problème similaire ici - mon compte marchand (bac à sable) a été créé comme aux États-Unis, et j'essayais de faire des paiements en EUR.
Pour moi, peu importe les paramètres que j'ai modifiés, cela ne fonctionnait qu'après la création d'un nouveau compte marchand basé en Allemagne.
Par défaut, votre compte professionnel Paypal est limité à quelques devises acceptées, choisies en fonction de vos paramètres régionaux. Les paiements effectués avec des devises non acceptées resteront en attente/ouverts. Pour prendre en charge/accepter ces devises, vous devez les ajouter à la liste des "devises acceptées" sur Paypal. Pour ce faire, procédez comme suit:
Remarque: Lorsque vous utilisez les comptes sandbox lors des tests, vous devez procéder de la même manière pour votre compte facilitateur après la connexion à ce compte à l'aide de l'URL: https://www.sandbox.Paypal.com/
Aucune des solutions ci-dessus n'a fonctionné pour moi, mais m'a aidé à trouver la solution.
Si vous utilisez un compte commercial et client par défaut, cette solution fonctionnera peut-être pour vous.
Accédez à developer.Paypal> sandbox.accounts.
https://developer.Paypal.com/developer/accounts/
Connectez-vous et cliquez sur l'icône clone dans votre compte sandobx business et votre compte d'acheteur
Définissez les nouveaux noms et emails et cliquez sur créer un nouveau compte.
Ouvrez le profil des deux comptes et assurez-vous que Payment Review est OFF.
Modifiez votre compte cible dans votre code/application et placez le nouveau compte business
Répéter la transaction en utilisant le nouveau compte acheteur
Cette solution n'a pas seulement résolu mon problème. Grâce à cela, le design sandox.Paypal a été remplacé par le new design qui utilise real accounts.
Ceci est important car certaines des données reçues par IPN dans ce cas peuvent répondre sous un nom différent.
J'ai résolu le mien en supprimant tous les comptes sandbox et en les recréant.
Notes IMPORTANTES:
Assurez-vous que les comptes utilisent la même devise avec votre code.
Il y a une dernière chose que vous devrez peut-être vérifier:
Assurez-vous que le codage linguistique de votre compte Paypal soit défini sur UTF-8. Dans certaines circonstances, il s’agit par défaut de "windows-1256" . Pour le remplacer par UTF-8, vous devez:
Chaque compte Paypal que j'ai créé en Allemagne a été configuré par défaut pour le langage "Windows ...". Dans ce cas, IPN ne fonctionnera pas avec un site Web codé en UTF-8, même dans Woocommerce, EDD ou un événement express.
La solution est ce que explique @Jadeye:
Aller sur le site du développeur Paypal