Ich habe auf meiner Homepage einen sogenannten Buy Now Button von PayPal eingebaut.
Damit kann der Benutzer den Lizenzschlüssel für die Software KML Manager bezahlen. Dummerweise mußte ich dann immer manuell aktiv werden. Ich habe von PayPal
eine email erhalten und habe dann dem Benutzer den Lizenzschlüssel per email zugeschickt. Diesen Schritt wollte ich automatisieren und bin dabei auf
PayPals Instant Payment Notification (IPN) gestoßen. Leider hat sich die Integration aus diversen Gründen als problematisch herausgestellt.
Der Login der Sandbox URL ist https://www.sandbox.paypal.com/
Mit dem Händler Account habe ich einen Sandbox Buy Now Button erzeugt und der "normale" Sandbox Benutzer hat dann auf diesen Button geklickt. Meinen IPN Listener habe ich als Azure HTTP Function in der Microsoft Cloud implementiert. Mit Hilfe der beiden Sandbox Accounts konnte ich dann überprüfen, ob mein Listener angesprochen wurde und ob er die IPN Nachricht richtig verarbeitet. Die Aktivierung von IPN für ein Händlerkonto kann unter https://www.sandbox.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-ipn-notify für die Sandbox vorgenommen werden.
Genau genommen passiert beim Austausch der Nachricht folgendes:
PayPal schickt nach Eingang der Zahlung eine Nachricht mit einem Haufen Formulardaten an meinen Listener. Ich nehme diese Daten und schicke sie an PayPal zurück. Damit soll sichergestellt werden, daß die Nachricht wirklich von PayPal kommt. PayPal antwortet darauf mit einen einfachen VERIFIED oder INVALID und schon kann ich die entsprechende email an den Kunden rausschicken.