2010-05-19 8 views
42

Paypal gibt mir erfolgreich die Rückkehr URL, die ich beim Erstellen der Schaltfläche "Jetzt kaufen" angeben. Aber jetzt bin ich verwirrt. Wie erhalte ich Details über die Transaktion, die bei Paypal passiert ist? Und ich möchte auch einige Datenbankwerte auf der Rückkehr-URL festlegen. Aber ich habe Angst, wenn mein Benutzer ohne Paypal zu dieser URL geht, dann wird auch er Premium-Mitglied. Wie sichere ich das?Notify Url von Paypal

Antwort

75

PayPal gibt Daten über IPN an Ihre Website zurück. Es ist wirklich nur ein Rückruf zu einer URL, die Sie angeben. Sie können diese URL über die Variable notify_url festlegen, die Sie an PayPal senden können.

Beispiel:

<input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden"> 

Die notify_url.php in dem obigen Beispiel einige POST-Variablen von PayPal erhält, wenn die Zahlung abgeschlossen ist, auch wenn der Kunde nie auf Ihre Website zurückgibt.

Einige der wichtigen variables von PayPal zurück ist:

  • mc_gross
  • Rechnung
  • settle_amount
  • protection_eligibility
  • address_status
  • payer_id
  • Steuer
  • address_street
  • payment_date
  • payment_status
  • charset
  • address_zip
  • mc_shipping
  • mc_handling
  • first_name
  • mc_fee
  • address_country_code
  • EXCHANGE_RATE
  • address_name
  • notify_version
  • settle_currency
  • benutzerdefinierte
  • payer_status
  • Geschäft
  • ADDRESS_COUNTRY
  • ADDRESS_CITY
  • verify_sign
  • PAYER_EMAIL
  • txn_id
  • payment_type

Rechnung zurückgegeben, wenn Sie es einrichten. Es kann als eigene Bestell-ID/Transaktions-ID verwendet werden.

txn_id wird von PayPal generiert und es ist ihre eigene ID für die Transaktion.

Wenn Sie Artikel selbst hinzufügen, gibt PayPal auch num_cart_items, item_name1 (item_name2, item_name3), menge1 (menge2, menge3) und so weiter.

Mehr Lesung in https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables

Natürlich dann haben Sie immer noch das Problem zu lösen, wie alle diese Daten zu überprüfen und es an einen Kunden in einer eigenen Datenbank verbinden, die Sie wahrscheinlich haben.

Ich speichere eine temporäre "Bestellung", bevor ich den Kunden mit einer Rechnungsnummer an PayPal sende, die ich auch als Rechnung an PayPal sende. Auf diese Weise kann meine Seite notify_url.php meine Datenbank nach einer Rechnungs-ID durchsuchen und die Bestellung/Bezahlung vergleichen.

+0

Hallo Jamietelin. Danke für Ihre wertvolle Antwort. Ich habe das schon alleine herausgefunden. Ich möchte hinzufügen, dass anstatt vorübergehende Bestellung in der Datenbank, Paypal hat schon einmal schönes Beispiel gegeben, wo wir alle Anfrage Parameter Namen und seine Werte abrufen und senden Sie es an Paypal (zur Validierung) von unserer Benachrichtigungs-URL und die Paypal dann zurück eine Zeichenfolge "VERIFIED" oder "INVALID" basierend auf der Sie einige Datenbankoperationen durchführen können. – TCM

+0

Nun, die temporäre db ist meistens, wenn wir es irgendwie mit einem Benutzer in unserer eigenen Benutzer-db verbinden müssen. Ich brauche das. Aber es hängt davon ab, welchen Service Sie bauen, denke ich :) – jamietelin

+0

@ jamietelin Ich versuchte es, aber nicht erfolgreich, bitte siehe http://stackoverflow.com/questions/8570539/add-custom-hidden-field-in-paypal-form- und-get-it-on-redirected-Seite –