2010-10-27 5 views
7

Ich habe jetzt mehr als 4 Stunden nach Rückrufaktionen mit PayPal nach einer Zahlung gesucht.PayPal Payment Callback

Die Sache ist, ich habe eine Website, die Tickets für eine LAN-Party verkauft, und die einzige Zahlungsart ist mit PayPal. Hier
ist mein PayPal-Button Code kaufen:

<form target="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="add" value="1"> 
<input type="hidden" name="cmd" value="_cart"> 
<input type="hidden" name="business" value="_MY_PAYPAL_EMAIL_"> 
<input type="hidden" name="item_number" value="<?php echo mktime(); ?>"> 
<input type="hidden" name="cn" value="<?php echo $_SESSION['userid']; ?>"> 
<input type="hidden" name="return" value="http://80.202.213.240/apps/tickets/buy/success/" /> 
<input type="hidden" name="cancel_return" value="http://80.202.213.240/apps/tickets/buy/cancelled/" /> 
<input type="hidden" name="notify_url" value="http://80.202.213.240/apps/tickets/buy/ipn/" /> 
<input type="hidden" name="lc" value="NO"> 
<input type="hidden" name="item_name" value="BitHack - Standard Ticket"> 
<input type="hidden" name="amount" value="100.00"> 
<input type="hidden" name="currency_code" value="NOK"> 
<input type="hidden" name="no_shipping" value="1"> 
<input type="hidden" name="button_subtype" value="Tickets"> 
<input type="hidden" name="add" value="1"> 
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest"> 
<input type="submit" value="Add to Cart" class="ticketShowButton submit" title="Payment via PayPal"> 

Die Informationen sollten dann in eine Datenbank eingefügt werden, dass ein Teil I abgeschlossen haben. Ich brauche nur das Callback-System zu arbeiten. Wer kennt ein gutes Beispiel für ein Callback-Skript?

BTW, ist es möglich benutzerdefinierte Eingaben zu verwenden?

Antwort

10

Die Callback-Funktion, die in den Rückgabe- und Benachrichtigungs-URL-Variablen angegeben ist, liegt in der Verantwortung des Programmierers. Warum? Weil jede Website eine eigene Tabellenstruktur für Bestellungen hat. Versuchen Sie dies als Anleitung:

In Ihrem Paypal-Profil legen Sie Ihre Präferenz für die automatische Umleitung nach einer Bestellung fest. Sie müssen auch eine Standard-Rückkehr-URL festlegen. Dies wird verwendet, wenn Sie vergessen haben, eine Rückgabe-URL in Ihrem Bestellformular oder eine an Paypal gesendete Abfrage-Zeichenfolge anzugeben.

Als nächstes geben Sie Ihre rm Feld/Variable auf „2“ (dies wird sagen Paypal API auf Ihre Rückkehr url nach der Bestellung autoredirect und die Bestellangaben im POST-Format übergeben)

Sie die Antwort anzeigen können aus Paypal mit var_dump ($ _ POST) oder print_r ($ _ POST).

Eine der wichtigen Variablen aus der Antwort ist $ _POST ['payment_status'], die Ihnen das Ergebnis der Bestellung mitteilen wird. Eine erfolgreiche Transaktion ist "Abgeschlossen". Eine Transaktion, die eine Bestätigung von Paypal oder von der Seite des Händlers erfordert, ist "Ausstehend".

Schließlich, vergessen Sie nicht, "Rechnung" in Ihrem Paypal Feld/Anfrage anzugeben, damit Sie den Status Ihrer Bestellung aktualisieren können. Etwas wie:

Ich weiß, das ist schlecht Codierung, aber zumindest erhalten Sie die allgemeine Idee in seiner einfachsten Form.

Noch einmal, verlassen Sie sich nicht auf andere Codes. Codes im Netz existieren zu Referenzzwecken und nicht als Gottes Handarbeit. Nur du hast die Kraft, dein eigenes Meisterwerk zu erschaffen: D

Ich hoffe das hilft. Stimme ab, wenn es dir gefällt. Ignoriere wenn nicht.

+0

ist '$ _POST' sicher? Was passiert, wenn eine Person ohne zu zahlen, senden Sie 'payment_status = 1' Callback URL? – Cooper

1

Eine kommerzielle aber kostengünstige Lösung ist die LinkLokIPN Skript an:

http://www.vibralogix.com/linklokipn/

Keine andere Verbindung als als zufriedener Kunde der PHP-Version. Manchmal ist es viel einfacher, eine funktionierende Lösung zu kaufen (und vielleicht anzupassen), als das Rad neu zu erfinden.

+0

Danke, werde einen Blick darauf werfen. – NoobiCake