2010-12-14 6 views
0

Sorry, wenn der Titel ein bisschen vaque ist, ich verspreche, dass ich es unten aufklären werde:IPN/Ubercart und alles, was mit ihnen kommt: Ich sicherstellen möchten, habe ich das Geld

Zunächst einmal eine Weile vor fragte ich eine Frage über den Verkauf Serienschlüssel:

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

Die Informationen, die ich dort geschrieben klare Dinge helfen können in dieser Frage, aber ich bezweifle es sehr, weil diese Frage etwas allgemeiner ist.

Grundsätzlich möchte ich meinen benutzerdefinierten Code nicht ausführen, bis ich weiß, dass die Zahlung gelöscht wurde und die Gelder in meinem Konto. Ich war mir nicht ganz sicher, was die bedingte Aktion, die ausgelöst wird, ist, ob der Kunde den Check-out durchführt. Wenn es heißt, dass sie das Auschecken abgeschlossen haben, bedeutet das notwendigerweise erfolgreich und das Geld ist auf meinem Konto oder nicht?

Wenn nicht, wie überzeuge ich Ubercart, bis es weiß, dass ich das Geld von PSP (z. B. Google Checkout, PayPal usw.) habe, um meinen benutzerdefinierten Code auszuführen? Ich kann es nicht hinkriegen, ist es überhaupt möglich?

Antwort

0

Es ist nicht dokumentiert oder offengelegt als etwas, das sollte zuverlässig sein, aber ich denke, dass die Verwendung des "Kunden schließt Auschecken" Auslöser ist der Weg zu gehen.

Beachten Sie, dass Folgendes für Ubercart 6.x-2.4 gilt. (Neueste Version ab heute)

Aus was ich den Code sah, scheint es, dass der Auslöser nur bei erfolgreichen Bestellungen ausgeführt wird. Ob ein erfolgreicher Auftrag bedeutet, dass Sie eine Zahlung erhalten haben, hängt stark von Ihrer aktuellen Konfiguration und den verschiedenen Zahlungs-Gateways oder -Methoden ab, die Sie verwenden, aber in allgemeinen Situationen und Konfigurationen.

Das Trigger nur von einer Funktion gestartet wird:

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

Wenn Sie auf ein Modul weite Suche durchführen, wenn diese Funktion ausgeführt wird, sollte es Ihnen eine grobe Vorstellung über die verschiedenen Situationen geben. Grundsätzlich habe ich festgestellt, dass es von einigen Zahlungsmodulen (zB paypal und 2checkout) ausgeführt wird, sowie von der drupal-Seite cart/checkout/complete, die in der Regel bei erfolgreichen Bestellungen ist. Das Paypal-Modul, das Sie ausdrücklich gefragt haben, scheint diese Funktion aufzurufen, wenn ein IPP-Status "Abgeschlossen" empfangen wird.

Es sollte nicht schwer sein, ein paar Einkäufe (richtig und falsch) auszuprobieren und zu sehen, ob Ihr Trigger nur ausgeführt wird, wenn die Bestellung korrekt aufgeladen ist.

+0

Mescalitio, danke für die Antwort, ich hatte es nach dieser langen nicht erwartet (für diese Gemeinschaft sowieso). Ich habe anderswo nach der Antwort in meinem Fall gesucht, ich habe gefunden, was ich brauchte, aber in aller Fairness hast du mehr Informationen gegeben, als es aussieht, dass du viel nach mir gesucht hast - also danke ich dir sehr dafür! Freundliche Grüße von Andy. Frohes neues Jahr auch !! – Andy