2010-12-14 81 views
0

Désolé si le titre est un peu Vaque, je promets que je vais éclaircir ci-dessous:IPN de/Ubercart et tout ce qui vient avec eux: je veux vous assurer que j'ai l'argent

Tout d'abord, un certain temps il y a j'ai posé une question sur la vente des clés de série:

How can I execute a custom script after purchase with Ubercart for Drupal

Les informations que j'ai posté il peut aider à clarifier les choses dans cette question, mais je doute beaucoup parce que cette question est un peu plus générale. Fondamentalement, je ne veux pas exécuter mon code personnalisé jusqu'à ce que je sache que le paiement a été effacé et les fonds dans mon compte. Je ne savais pas très bien quelle était l'action conditionnelle déclenchée par le client. Quand il dit qu'ils ont terminé la caisse, cela signifie-t-il nécessairement que l'argent est dans mon compte ou non?

Sinon, comment puis-je faire attendre Ubercart jusqu'à ce qu'il sache que j'ai l'argent de PSP (par exemple Google Checkout, PayPal, etc) pour exécuter mon code personnalisé? Je ne peux pas m'en sortir, est-ce possible?

Répondre

0

Il n'est pas documenté ou exposé comme quelque chose qui devrait être fiable, mais je pense que l'utilisation du déclencheur 'Client termine le paiement' est la bonne façon de procéder. N'oubliez pas que ce qui suit s'applique à Ubercart 6.x-2.4. (Dernière version à ce jour)

De ce que j'ai regardé le code, il semble que le déclencheur n'est exécuté que sur des commandes réussies. Si une commande réussie signifie que vous avez reçu un paiement, cela dépend beaucoup de votre configuration actuelle et des différentes passerelles de paiement ou de la méthode que vous utilisez, mais dans des situations générales et de configuration.

Ce déclencheur n'est lancé à partir d'une fonction:

function uc_cart_complete_sale($order, $login = FALSE); 

Si vous effectuez une recherche de module large lorsque cette fonction est exécutée, il devrait vous donner une idée approximative sur les différentes situations. Fondamentalement, j'ai découvert qu'il est exécuté à partir de quelques modules de paiement (paypal et 2checkout par exemple) ainsi que lorsque vous atteignez la page drupal cart/checkout/complete, qui est généralement sur les commandes réussies. Le module paypal, que vous avez spécifiquement demandé, semble appeler cette fonction quand un statut IPN «Terminé» est reçu.

Il ne devrait pas être difficile d'essayer quelques achats (vrai et faux) et de voir si votre déclencheur n'exécute que lorsque la commande est correctement chargée.

+0

Mescalitio, merci pour la réponse, je ne m'y attendais pas après si longtemps (pour cette communauté de toute façon). J'ai cherché ailleurs la réponse dans ma chambre, j'ai trouvé ce dont j'avais besoin mais en toute justice vous avez donné plus d'informations car il semble que vous ayez beaucoup étudié pour moi - alors je vous en remercie beaucoup! Cordialement d'Andy. Bonne année aussi! – Andy