Sofortige Zahlungsbenachrichtigung von PayPal mit PHP verwenden

Hallo! Heute werden wir Paypal mit PHP kombinieren, um Zahlungen auf Ihrer Website einfach verarbeiten zu können.


Fertiges Produkt: Vorschau

Schritt 1 - Ein PayPal-Konto erstellen

Für dieses Tutorial benötigen Sie ein Premier PayPal-Konto und ein Online-Website. Gehen Sie zu paypal.com und klicken Sie oben auf der Seite auf "Anmelden".

Klicken Loslegen unter dem Premier-Titel; Sie werden zu einem Anmeldeformular weitergeleitet. Bitte geben Sie alle erforderlichen Informationen ein. Wenn Ihr Konto erstellt wurde, melden Sie sich an und fahren Sie mit Schritt 2 fort.

Schritt 2 - Aktivieren Sie IPN

In diesem Schritt werden wir es ermöglichen Sofortige Zahlungsbenachrichtigung (IPN), Klicken Sie also, während Sie angemeldet sind, auf Profil und dann wählen Sofortige Zahlungsbenachrichtigung

Auf dem nächsten Bildschirm sehen Sie nun, dass IPN auf "Aus" gesetzt ist. klicken "Bearbeiten" das zu ändern.

Zu Beginn dieses Tutorials habe ich erwähnt, dass Sie eine Online-Website benötigen. Warum? Nun, wir werden PayPal bitten, uns Daten zu senden, sobald die Zahlung abgeschlossen ist. PayPal kann lokal gehostete Websites nicht erreichen, es sei denn, Sie haben alle Einstellungen richtig konfiguriert. (Dazu müssen Sie die Ports Ihres Routers öffnen). Also gebe ich die URL zu meinem Validierungsskript ein, beispielsweise http://www.IhreDomain.com/PayPal/ipn.php. PayPal sendet dann eine Benachrichtigung an meinen Server unter der von mir angegebenen URL.

Schritt 3 - Erstellen einer einfachen HTML-Seite

Okay, jetzt brauchen wir eine einfache und einfache HTML-Seite, auf der Ihr Besucher Zugriff auf Ihren Downloadbereich erwerben kann.
Ich werde nicht alles HTML erklären, weil ich denke, dass Sie die Grundlagen von HTML kennen sollten, bevor Sie mit PHP beginnen.

index.php - Eine einfache HTML-Seite mit einem Stylesheet.

    Nettuts.com | Zugang zum Downloadbereich erwerben    

Kaufzugang

Bitte klicken Sie auf die Schaltfläche unten, um Anmeldedaten für den Downloadbereich zu erhalten.
Hast du schon ein Konto? Hier anmelden.

css / style.css - Ein einfaches Stylesheet für unsere HTML-Seite.

 body background: # 2D2D2D; / * Website-Hintergrundfarbe festlegen * / font: 11px 'Verdana'; / * Website-Schriftgröße und Schriftart festlegen * / #wrap margin: 0 auto; / * Center Unser Inhalt * / width: 500px; / * Setze die Breite für unseren Inhalt * / background: #FFF; / * Hintergrundfarbe des Inhalts setzen * / padding: 10px; / * Padding für Inhalt setzen * / border: 1px solid # 000; / * Einen Rahmen um den Inhalt hinzufügen * /

Schritt 4 - Erstellen einer PayPal-Schaltfläche

Wir müssen einen Kauf-Button erstellen, also klicken Sie bitte auf Händler-Dienstleistungen, und dann wählenStandard für Website-Zahlungen

Sie können drei Arten von Schaltflächen auswählen, Einzelne Artikel verkaufen, Verkaufen Sie mehrere Artikel und, Abonnement. In diesem Tutorial erstellen wir nun einen einzelnen Artikel. Wenn jemand diesen einzelnen Artikel erwirbt, greifen Sie in diesem Fall auf einen Downloadbereich zu. Sobald die Zahlung bestätigt wurde, wird eine E-Mail mit den Details gesendet.

Geben Sie einige Informationen für unsere Kaufschaltfläche ein. Sie können den Rest so lassen, wie er ist.

Wenn Sie alle Abschnitte ausgefüllt haben, generieren Sie den Code. Kopieren Sie diesen Code in Ihre Zwischenablage und fügen Sie ihn anschließend einindex.php - wo ich den Kommentar in die HTML-Seite eingefügt habe. Bitte überprüfen Sie ggf. Schritt 3.

Das sollte perfekt funktionieren. Benutzer können auf die Schaltfläche klicken und ihren Kauf abschließen.

Schritt 5 - ipn.php schreiben

Erstellen Sie zunächst ipn.php, damit wir mit dem Schreiben beginnen können. Wir verwenden ein kleines Snippet, das ich aus einem größeren Snippet erstellt habe, das Sie von der Paypal-Website erhalten.
Bitte beachten Sie, dass es keinen Grund gibt, diesen Code aus Ihrem Kopf heraus zu lernen! Snippets sind praktisch und sparen Zeit. Ich werde es unten abbauen.

  $ value) $ value = urlencode (striplashes ($ value)); $ req. = "& $ key = $ value";  // Post zurück an das PayPal-System, um $ header = "POST / cgi-bin / webscr HTTP / 1.0 \ r \ n" zu überprüfen =; $ header. = "Content-Type: application / x-www-form-urlencoded \ r \ n"; $ header. = "Content-Length:". strlen ($ req). "\ r \ n \ r \ n"; $ fp = fsockopen ('ssl: //www.paypal.com', 443, $ errno, $ errstr, 30); if (! $ fp) // HTTP-FEHLER else fputs ($ fp, $ header. $ req); while (! feof ($ fp)) $ res = fgets ($ fp, 1024); if (strcmp ($ res, "VERIFIED") == 0) // ZAHLUNG BESTÄTIGT & GEPRÜFT!  else if (strcmp ($ res, "INVALID") == 0) // BEZAHLUNG UNGÜLTIG & UNTERSUCHEN SIE UNTERSUCHEN!  fclose ($ fp); ?>

Bitte geben Sie die korrekten Anmeldeinformationen für Ihre Datenbank ein, damit wir im nächsten Schritt Daten einfügen können.

PayPal POSTS-Daten an die von uns angegebene URL. In diesem Beispiel benötigen wir nur die E-Mail-Adresse des Käufers, damit wir ihm seine Zugangsdaten senden können. Dieser Code liest die Daten, die PayPal sendet, und sendet die Informationen an PayPal zurück. Ich habe zwei Kommentare hinzugefügt, wo der Code kommen sollte, wenn er validiert wurde. Außerdem habe ich einen Kommentar hinzugefügt, der angibt, was zu tun ist, wenn es nicht validiert ist.

Schritt 6 - Erstellen der Datenbank

Jetzt werden wir uns darauf konzentrieren, was passiert, wenn die Zahlung überprüft wird. Zuerst müssen wir eine MySQL-Tabelle erstellen, in der die Benutzerinformationen gespeichert werden. Nur eine einfache mit ID, E-Mail und Passwort.

Als nächstes müssen wir unsere Tabellendetails eingeben. wir brauchen eine ICH WÜRDE mit einer Primärschlüsselauswahl und es sollte automatisch erhöht werden; nächste an Email und Passwort Feld.

Für diejenigen von Ihnen, die keine Zeit haben, all diese Informationen einzugeben, finden Sie unten einen kleinen MySQL-Dump-Code, um die Tabelle neu zu erstellen.

 CREATE TABLE 'users' ('id' int (10) NOT NULL auto_increment, 'email' varchar (50) NOT NULL, 'password' varchar (32) NOT NULL, PRIMÄRSCHLÜSSEL ('id')) ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1; 

Schritt 7 - Kontoerstellung

Öffnen ipn.php nochmal. Der folgende Code wird unterhalb der Zeile "// PAYMET VALIDATED" geschrieben.

Unser erster Schritt ist das Abrufen der E-Mail-Adresse des Käufers. PayPal sendet diese Informationen an ipn.php.

 // ZAHLUNG BESTÄTIGT & GEPRÜFT! $ email = $ _POST ['payer_email'];

Wir müssen eine letzte Variable erstellen - das ist das Passwort, das wir mit PHP erzeugen.

 // ZAHLUNG BESTÄTIGT & GEPRÜFT! $ email = $ _POST ['payer_email']; $ password = mt_rand (1000, 9999);

Wie Sie sehen, haben wir mit mt_rand ein zufälliges Passwort generiert - in diesem Fall einen numerischen Wert zwischen 1000 und 9999. Als nächstes müssen wir diese Daten in unsere Datenbank einfügen. Dazu verwenden wir die mysql insert-Abfrage.

 // ZAHLUNG BESTÄTIGT & GEPRÜFT! $ email = $ _POST ['payer_email']; $ password = mt_rand (1000, 9999); mysql_query ("INSERT INTO-Benutzer (E-Mail, Kennwort)) VALUES ('". mysql_escape_string ($ email). "', '" .md5 ($ password). "')") oder die (mysql_error ());

Hier weisen wir unser Skript an, die E-Mail und das Passwort in unsere Datenbank einzufügen. Ich habe einen mysql_escape_string hinzugefügt, um sicherzustellen, dass die Injektion von mysql nicht möglich ist. Ich habe auch die md5-Funktion zu unserem Passwort hinzugefügt, damit es als 32-Zeichen-Hash gespeichert wird. Jetzt wird das Konto erstellt. Lass uns zum nächsten Schritt übergehen.

Schritt 8 - E-Mail der Anmeldeinformationen

Wir müssen einen Code schreiben, der die Anmeldeinformationen per E-Mail an den Käufer sendet. Um dies zu erreichen, verwenden wir die PHP-Mail-Funktion.

 // ZAHLUNG BESTÄTIGT & GEPRÜFT! $ email = $ _POST ['payer_email']; $ password = mt_rand (1000, 9999); mysql_query ("INSERT INTO-Benutzer (E-Mail, Kennwort)) VALUES ('". mysql_escape_string ($ email). "', '" .md5 ($ password). "')") oder die (mysql_error ()); $ to = $ email; $ subject = 'Downloadbereich | Anmeldedaten'; $ message = 'Vielen Dank für Ihren Kauf. Ihre Kontoinformationen ------------------------- E-Mail:'. $ email. ' Passwort: '. $ Passwort.' ------------------------- Sie können sich jetzt unter http://yourdomain.com/PayPal/ 'anmelden. $ headers = 'Von: [email protected]'. "\ r \ n"; mail ($ to, $ subject, $ message, $ headers);

Brechen wir diese E-Mail-Funktion ab. Wir verwenden die Variable $ email, um die E-Mail-Adresse des Benutzers abzurufen und sie der $ to-Variablen zuzuweisen.
Die Variable $ subject ist der Titel / Betreff, den Sie in Ihrem E-Mail-Programm sehen. Danach haben wir unsere Nachricht, die eine Dankeserklärung sowie die Kontoinformationen enthalten wird. Die Variablen $ email und $ password in der Nachricht werden in die richtigen Informationen geändert, sobald die E-Mail gesendet wurde. Wir haben auch einen benutzerdefinierten Header festgelegt. Wenn der Benutzer die E-Mail erhält, wird die Adresse "von" als "[email protected]" angezeigt..

Schritt 9 - Ungültige Zahlungs-E-Mail

Eine ungültige Zahlung kann aufgrund von Betrug, aber auch aufgrund eines Problems mit PayPal auftreten. Wir möchten also sicherstellen, dass unser Kunde erhält, was er bezahlt hat.
Wir senden also eine E-Mail an unseren Site-Administrator und fordern ihn auf, sich an den Käufer zu wenden, um weitere Informationen zu erhalten. Kopieren Sie einfach den zuvor verwendeten E-Mail-Code und nehmen Sie dann die unten aufgeführten Änderungen vor.

 // BEZAHLUNG UNGÜLTIG & UNTERSUCHUNG $ to = '[email protected]'; $ subject = 'Downloadbereich | Ungültige Zahlung '; $ message = 'Sehr geehrter Administrator, eine Zahlung wurde durchgeführt, wird jedoch als UNGÜLTIG gekennzeichnet. Bitte überprüfen Sie die Zahlung manuell und wenden Sie sich an den Käufer. Käufer-E-Mail: '. $ Email. "; $ Headers =' Von: [email protected] '." \ R \ n "; mail ($ to, $ subject, $ message, $ headers);

Dieser Code ist fast derselbe wie oben, nur der Empfänger, der Betreff und die Nachricht wurden geändert.

Schritt 10 - Benutzeranmeldung

Dies ist unser letzter Schritt, in dem wir ein einfaches Anmeldeformular für unsere Käufer erstellen. Erstellen Sie eine neue PHP-Datei und benennen Sie sie login.php. Wir verwenden dieselbe HTML-Seite wie für index.php, Wir nehmen nur einige Anpassungen am Inhalt der Seite vor und fügen unserem Anmeldeformular natürlich ein bisschen Stil hinzu.

login.php - Auf dieser Seite können sich unsere Käufer anmelden.

    Nettuts.com | Anmeldung    

Anmeldung

Bitte geben Sie Ihre Zugangsdaten ein, um Zugang zum Downloadbereich zu erhalten

Hinzufügen style.css

 Beschriftung Anzeige: Block; / * Vergewissern Sie sich, dass sich das Etikett in einer einzelnen Zeile befindet * / margin: 3px; / * Abstand von den Eingabefeldern erzeugen * / input padding: 3px; / * Geben Sie dem Text etwas mehr Platz. * / Border: 1px solid gray; / * Füge einen Rand um die Eingabefelder hinzu * / margin: 3px; / * Abstand von den Beschriftungen herstellen * /

Nachdem wir unser Formular erstellt haben, müssen wir prüfen, ob die Anmeldeinformationen korrekt sind. Ich habe ein paar Änderungen an login.php vorgenommen, damit wir loslegen können:

    Nettuts.com | Anmeldung    

Anmeldung

Bitte geben Sie Ihre Zugangsdaten ein, um Zugang zum Downloadbereich zu erhalten

Der obige Code prüft, ob E-Mail und Passwort veröffentlicht werden. Wenn ja, können wir die Anmeldeinformationen überprüfen. Wenn nicht, geben wir einen Fehler zurück. Der nächste Code, den wir schreiben werden, wird unter "// Verify" angezeigt. Zuerst müssen wir die Nachvariablen in lokale Variablen umwandeln.

 $ email = mysql_escape_string ($ _ POST ['email']); $ password = md5 ($ _ POST ['password']);

Ich habe eine Escape-Funktion hinzugefügt, um die Injektion von MySQL zu verhindern, und habe das veröffentlichte Passwort in einen MD5-Hash umgewandelt. Da wir dies in unserer Datenbank durchgeführt haben, müssen wir auch das Kennwort des Benutzers angeben, um die beiden Werte richtig vergleichen zu können. Nun ist es Zeit, die Daten zu überprüfen.

 $ email = mysql_escape_string ($ _ POST ['email']); $ password = md5 ($ _ POST ['password']); $ gUser = mysql_query ("SELECT * FROM Benutzer WHERE. $ email." "AND. $ password." "LIMIT 1") oder die (mysql_error ()); $ verify = mysql_num_rows ($ gUser); if ($ verify> 0) Echo '

Login abgeschlossen

Klicken Sie hier, um unser Programm herunterzuladen

'; else echo '

Anmeldung fehlgeschlagen

Entschuldigung, dass Ihre Anmeldeinformationen falsch sind. ';

Wie Sie sehen, führen wir eine mysql-Abfrage aus und wählen alle Daten aus unserer Benutzertabelle aus - jedoch nur die Zeile, in der die E-Mail-Adresse des Benutzers mit der aus der Datenbank übereinstimmt.
mysql_num_rows prüft, ob eine Übereinstimmung gefunden wurde: 1 = wahr; 0 = falsch.

Das ist alles!

Und das ist das Ende dieses Tutorials. Ich hoffe, es hat Ihnen gefallen, und Sie können gerne einen Kommentar mit Ihren Gedanken hinterlassen. Habe irgendwelche Tipps, die helfen könnten?

  • Abonnieren Sie den NETTUTS-RSS-Feed für mehr tägliche Webentwicklungsberichte und -artikel.