Heim >Web-Frontend >js-Tutorial >Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt

Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-02-23 09:34:10463Durchsuche

Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt

Erklären Sie, wie PayPal funktioniert (IPN- und PDT -Prozess). Kapitel eins Kapitel drei

Key Takeaways

  • Das Tutorial deckt den Prozess der Einrichtung eines PayPal -Kontos und der Integration in ein Registrierungsformular und eine Datenbank für ein reales Projekt ab.
  • Das Projekt beinhaltet das Erstellen eines Registrierungsformulars, die Umleitung von Benutzern in PayPal zur Zahlung und die Implementierung von PayPal IPN als Sicherungsplan für den Fall, dass Benutzer ihren Browser schließen.
  • Das Tutorial enthält detaillierte Anweisungen zum Einrichten der Datenbankstruktur und der Benutzeroberfläche, zum Erstellen einer PayPal -Schaltfläche, zum Einrichten eines PayPal -Sandbox -Kontos sowie das Codieren von PDT- und IPN -Handlern.
  • Das Tutorial beantwortet auch häufig gestellte Fragen zur Registrierung für PayPal, einschließlich der Sicherstellung der Kontosicherheit, der Registrierung ohne Kreditkarte, der Vorteile eines Geschäftskontos und der Registrierung von außerhalb der USA.

Kapitel zwei

In diesem Kapitel wird ein echtes Projekt vorgestellt: „Registrierung mit Zahlung“ von Anfang bis Ende, um eine bessere Erläuterung von PayPal -Konto -Einrichtung und -integration in das Registrierungsformular und die Datenbank zu erläutern.

Projektszenario

  1. Erstens haben wir ein Registrierungsformular.
  2. Nachdem das Formular korrekt ausgefüllt wurde (alle Validierung bestanden), klickt der Benutzer auf die Schaltfläche "Register".
  3. dann zu paypal umleiten, Benutzer bezahlen die Registrierungsgebühr.
  4. Nachdem PayPal nach bezahlt wird, wird die Seite der Ergebnisse auf die Ergebnis weitergeleitet und 10 Sekunden automatisch auf unsere Website umgeleitet, dann verarbeitet PayPal PDT den Zahlungsdatensatz.
  5. Aber der Benutzer kann den Browser schließen, daher müssen wir PayPal IPN für den Sicherungsplan implementieren.

Datenbankstruktur

E-R-Diagramm:

Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt
  1. temp_register Tabelle: Temporäres Speicherkonto und Benutzerkennwort, Warten Sie auf die Zahlung. Wenn sie bezahlt werden, wird das Tupel gelöscht und wechselt in die Benutzertabelle.
  2. Zahlungstabelle: UID ist ein Fremdschlüssel, der auf Benutzer verweist, um Benutzerinformationen und Zahlungsinformationen zu verbinden.
  3. Benutzer Tabelle: Benutzerdaten Informationen, Token ist Überprüfungstoken in Bestätigungs -E -Mail. Wenn der Benutzer sein Benutzerkonto verifiziert hat, wird verifiziert als 1.
  4. festgelegt

Datenbankschema:

<span>CREATE TABLE IF NOT EXISTS <span>`payment`</span> (
</span><span><span>`payId`</span> int(11) NOT NULL AUTO_INCREMENT,
</span><span><span>`timestamp`</span> bigint(20) DEFAULT NULL,
</span><span><span>`paid`</span> float DEFAULT NULL COMMENT 'user paid amount returned by paypal',
</span><span><span>`bankFee`</span> float DEFAULT NULL,
</span><span><span>`currency`</span> varchar(4) DEFAULT NULL,
</span><span><span>`txnId`</span> varchar(32) DEFAULT NULL COMMENT 'Transaction ID: specify single unique transaction from paypal. if this field is NOT NULL, means this payment has been process already. So if IPN returns to PHP, we can refuse to update our database.',
</span><span><span>`status`</span> varchar(16) DEFAULT NULL,
</span><span><span>`uid`</span> int(11) DEFAULT NULL COMMENT 'FK to users PK',
</span><span>PRIMARY KEY (<span>`payId`</span>),
</span><span>KEY <span>`uid`</span> (<span>`uid`</span>)
</span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
</span><span>CREATE TABLE IF NOT EXISTS <span>`temp_register`</span> (
</span><span><span>`tRegId`</span> int(11) NOT NULL AUTO_INCREMENT,
</span><span><span>`fullName`</span> varchar(255) DEFAULT NULL,
</span><span><span>`uAcc`</span> varchar(255) DEFAULT NULL,
</span><span><span>`uPwd`</span> varchar(32) DEFAULT NULL,
</span><span>PRIMARY KEY (<span>`tRegId`</span>)
</span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='prevent unpaid user take uAcc(UNIQUE) in our users table' AUTO_INCREMENT=1 ;
</span><span>CREATE TABLE IF NOT EXISTS <span>`users`</span> (
</span><span><span>`uid`</span> int(11) NOT NULL AUTO_INCREMENT,
</span><span><span>`fullName`</span> varchar(255) DEFAULT NULL,
</span><span><span>`uAcc`</span> varchar(255) NOT NULL,
</span><span><span>`uPwd`</span> varchar(32) NOT NULL,
</span><span><span>`token`</span> varchar(32) DEFAULT NULL,
</span><span><span>`verified`</span> tinyint(1) NOT NULL DEFAULT '0',
</span><span><span>`priviledge`</span> enum('delegate','admin','developer') NOT NULL DEFAULT 'delegate',
</span><span>PRIMARY KEY (<span>`uid`</span>)
</span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
</span><span>ALTER TABLE <span>`payment`</span>
</span><span>ADD CONSTRAINT <span>`payment_ibfk_1`</span> FOREIGN KEY (<span>`uid`</span>) REFERENCES <span>`users`</span> (<span>`uid`</span>);</span>

Benutzeroberfläche

Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt

Projekt Workflow

  1. füllen Sie das Formular aus, und alle Eingänge werden validiert.
  2. Schaltfläche Register auf Registrieren, um zu paypal umzuleiten.
  3. Paypal Sandbox „Jetzt bezahlen“: Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt
  4. PayPal -Ergebnisseite umleiten.
  5. Warten Sie auf Weiterleitungen (PDT Works) Erfolg/Ausfallseite oder schließen Browser (IPN Works).

Paypal Sandbox

einrichten Bevor wir mit dem Codieren beginnen, müssen wir zuerst PayPal Sandbox -Konto einrichten. Nehmen wir an, Sie haben ein PayPal Developer -Konto registriert und ein Geschäftskonto und ein Käuferkonto in Sandbox erstellt. Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt Wählen Sie dann Geschäftskonto und klicken Sie auf die Schaltfläche "Sandbox -Test -Site eingeben". Sie können die Pop-out-Seite des Hauptfeldes sehen: Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt Anschließend können Sie alle Informationen und den Verkauf von Präferenzeinstellungen sehen. Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt Richten wir also alle drei Optionen eins nach dem anderen ein.

1. Aktivieren Sie PDT und Einstellungen

Richten Sie Ihre PDT -Handler -Funktion auf, die URL aufruft. Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt

2. Aktivieren Sie IPN und Einstellungen

Richten Sie Ihre IPN -Handler -Funktion auf, die URL aufruft. Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt

2. Erstellen Sie eine PayPal -Taste und PayPal -Parametereinstellungen

Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt Nachdem Sie Ihre Änderung gespeichert haben, können Sie den Quellcode Ihrer PayPal -Schaltfläche sehen:
<span>CREATE TABLE IF NOT EXISTS <span>`payment`</span> (
</span><span><span>`payId`</span> int(11) NOT NULL AUTO_INCREMENT,
</span><span><span>`timestamp`</span> bigint(20) DEFAULT NULL,
</span><span><span>`paid`</span> float DEFAULT NULL COMMENT 'user paid amount returned by paypal',
</span><span><span>`bankFee`</span> float DEFAULT NULL,
</span><span><span>`currency`</span> varchar(4) DEFAULT NULL,
</span><span><span>`txnId`</span> varchar(32) DEFAULT NULL COMMENT 'Transaction ID: specify single unique transaction from paypal. if this field is NOT NULL, means this payment has been process already. So if IPN returns to PHP, we can refuse to update our database.',
</span><span><span>`status`</span> varchar(16) DEFAULT NULL,
</span><span><span>`uid`</span> int(11) DEFAULT NULL COMMENT 'FK to users PK',
</span><span>PRIMARY KEY (<span>`payId`</span>),
</span><span>KEY <span>`uid`</span> (<span>`uid`</span>)
</span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
</span><span>CREATE TABLE IF NOT EXISTS <span>`temp_register`</span> (
</span><span><span>`tRegId`</span> int(11) NOT NULL AUTO_INCREMENT,
</span><span><span>`fullName`</span> varchar(255) DEFAULT NULL,
</span><span><span>`uAcc`</span> varchar(255) DEFAULT NULL,
</span><span><span>`uPwd`</span> varchar(32) DEFAULT NULL,
</span><span>PRIMARY KEY (<span>`tRegId`</span>)
</span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='prevent unpaid user take uAcc(UNIQUE) in our users table' AUTO_INCREMENT=1 ;
</span><span>CREATE TABLE IF NOT EXISTS <span>`users`</span> (
</span><span><span>`uid`</span> int(11) NOT NULL AUTO_INCREMENT,
</span><span><span>`fullName`</span> varchar(255) DEFAULT NULL,
</span><span><span>`uAcc`</span> varchar(255) NOT NULL,
</span><span><span>`uPwd`</span> varchar(32) NOT NULL,
</span><span><span>`token`</span> varchar(32) DEFAULT NULL,
</span><span><span>`verified`</span> tinyint(1) NOT NULL DEFAULT '0',
</span><span><span>`priviledge`</span> enum('delegate','admin','developer') NOT NULL DEFAULT 'delegate',
</span><span>PRIMARY KEY (<span>`uid`</span>)
</span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
</span><span>ALTER TABLE <span>`payment`</span>
</span><span>ADD CONSTRAINT <span>`payment_ibfk_1`</span> FOREIGN KEY (<span>`uid`</span>) REFERENCES <span>`users`</span> (<span>`uid`</span>);</span>
Es ist leicht herauszufinden, dass die Taste tatsächlich ein Formular ist. Daher müssen wir Daten mit ihren Eingaben veröffentlichen. Wenn wir unsere Schaltfläche "Register" generieren, sollte die Redirect-URL "& cmd = _s-xclick" und "& hosted_button_id = ha9dzbckxkcl2" enthalten. Jetzt wurde PayPal Sandbox -Konto eingerichtet. Dann beginnen Sie, Ihre PDT- und IPN -Handler zu codieren.

PDT -Handlerfunktion

Quellcode:




Erläuterung:

PayPal Call pdTHandSandler () -Funktion, dann dieser Handler -Funktionsprozess _pdt (). Wie Sie sehen, empfängt es Parameter von PayPal aus der URL ($ _get). Also veröffentlichen wir Token und TX über Fsock SSL an Paypal zurück. Dann kehrt PayPal Zahlungsdaten und Zahlungsergebnisse zurück (Erfolg/Misserfolg). _Pdt () übergibt diese Daten an _validatePaypal (), das Daten in Datenbank speichert. Dann leiten Sie die Seite entsprechend der Rückgabe um.

IPN -Handlerfunktion

Quellcode:

<span>/**
</span><span>* PAYPAL: PDT HANDLER:
</span><span>* ====================
</span><span>* called by PayPal, send tokens back
</span><span>* get payment details and payment result
</span><span>* <span>@return $ret array contains result true/false, and user account or error message
</span></span><span>*/
</span><span>private function _PDT()
</span><span>{
</span><span>// some indexes can not be missing:
</span><span>$ruler = array(
</span><span>'tx', // token from paypal
</span><span>);
</span><span>if(count(array_diff($ruler, array_keys($_GET))))
</span><span>{
</span><span>return array('result' => false, 'error' => 'Index missing ... ', 'index' => $_GET, 'missing' => array_diff($ruler, array_keys($_GET)));
</span><span>}
</span><span>// read the post from PayPal system and add 'cmd'
</span><span>$req = 'cmd=_notify-synch';
</span><span>// get token and prepare request url (send back to paypal)
</span><span>$tx_token = $_GET['tx'];$auth_token = "_PJaHiwRfwMmWzW-9nuPuSguYxC-1d9KpxaasaNANtIvyOcmqY6jXNkRmxW";
</span><span>// $auth_token = "OxDenzKmrWPyEXU0YzIg2zs-VAe7ufCADyjbfxF_RpREL4rLEslZrSa21R4";
</span>
<span>$req .= "&tx=<span><span>$tx_token</span>&at=<span>$auth_token</span>"</span>;
</span>
<span>// post back to PayPal system to validate
</span>
<span>$header = "POST /cgi-bin/webscr HTTP/1.0rn";
</span>
<span>$header .= "Host: www.sandbox.paypal.comrn";
</span><span>// $header .= "Host: www.paypal.comrn";
</span>
<span>$header .= "Content-Type: application/x-www-form-urlencodedrn";
</span><span>$header .= "Content-Length: " . strlen($req) . "rnrn";
</span>
<span>$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); // open socket
</span><span>// $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); // open socket
</span>
<span>if (!$fp)
</span><span>{
</span><span>// HTML FAIL
</span><span>return array('result' => false, 'error' => 'HTTP error ... ');
</span><span>}
</span><span>else
</span><span>{
</span><span>fputs ($fp, $header . $req);
</span><span>// read the body data
</span><span>$res = '';
</span><span>$headerdone = false;
</span><span>while (!feof($fp))
</span><span>{
</span><span>$line = fgets ($fp, 1024);
</span><span>if (strcmp($line, "rn") == 0)
</span><span>{
</span><span>$headerdone = true; // read the header
</span><span>}
</span><span>else if ($headerdone)
</span><span>{
</span><span>$res .= $line; // header has been read. now read the contents
</span><span>}
</span><span>}
</span>
<span>// parse the data
</span><span>$lines = explode("n", $res);
</span><span>$keyarray = array();
</span><span>if (strcmp ($lines[0], "SUCCESS") == 0)
</span><span>{
</span><span>for ($i=1; $i_validatePaypal($keyarray);
</span><span>}
</span><span>// log for manual investigation
</span><span>else if (strcmp ($lines[0], "FAIL") == 0)
</span><span>{
</span><span>// skipped
</span><span>return array('result' => false, 'error' => 'Transaction failed ... ');
</span><span>}
</span><span>}
</span><span>fclose ($fp);
</span><span>return $ret;
</span><span>}</span>

Erläuterung:

PayPal Call Ipnhandler () -Funktion, dann dieser Handler -Funktionsprozess _ IPN (). Wie Sie sehen, empfängt es Daten, die von PayPal aus der Anfrage ($ _post) bereitgestellt wurden. Deshalb veröffentlichen wir Zahlungsdetails an PayPal über Curl, dies ist der Handshake -Prozess. Dann senden Sie das PayPal -Rückzahlungsergebnis (verifiziert/ungültig). Wenn es überprüft wird, übergibt _ipn () diese Daten an _validatePaypal (), was Daten in Datenbank speichert.

In der ZIP -Datei enthält es Vorlagen, JavaScript -Dateien, CSS, Bootstrap, JQuery, Debugg -Plugin und Smarty -Plugin und alle Kern -PHP -Quellcode.

Download Project (344KB)

häufig gestellte Fragen zur Registrierung für PayPal

Wie kann ich sicherstellen, dass mein PayPal -Konto während der Registrierung sicher ist? Um sicherzustellen, dass Ihr Konto sicher ist, verwenden Sie ein starkes, eindeutiges Passwort, das eine Mischung aus Buchstaben, Zahlen und Sonderzeichen enthält. Stellen Sie außerdem sicher, dass Sie während der Registrierung genaue persönliche Informationen bereitstellen. PayPal verwendet diese Informationen, um Ihre Identität zu überprüfen und Ihr Konto vor betrügerischen Aktivitäten zu schützen.

Kann ich mich für ein PayPal -Konto ohne Kreditkarte registrieren? eine Kreditkarte. Während des Registrierungsprozesses können Sie ein Bankkonto anstelle einer Kreditkarte verknüpfen. Das Verknüpfen einer Kreditkarte kann jedoch zusätzliche Zahlungsoptionen und Sicherheitsfunktionen bereitstellen. über ein persönliches Konto. Dazu gehören die Möglichkeit, Zahlungen von Kunden zu akzeptieren, Zugang zu Geschäftsdarlehen und Bargeldvorschüssen sowie die Möglichkeit, Rechnungen zu erstellen und zu senden. Mit einem Geschäftskonto können Sie auch unter einem Unternehmen oder Gruppennamen operieren.

Wie kann ich mich für ein PayPal -Konto registrieren, wenn ich außerhalb der USA lebe? Länder und Regionen auf der ganzen Welt. Um sich für ein PayPal -Konto außerhalb der USA zu registrieren, besuchen Sie die PayPal -Website für Ihr spezifisches Land oder Ihre spezielle Region. Der Registrierungsprozess ähnelt dem in den USA.

Welche Informationen müssen ich bei der Registrierung für ein PayPal -Konto bereitstellen? Ihr rechtlicher Name, Ihre Adresse, Ihre Telefonnummer und Ihre E -Mail -Adresse. Sie müssen auch ein Passwort erstellen und zwei Sicherheitsfragen auswählen, um Ihr Konto zu schützen.

Wie lange dauert es, sich für ein PayPal -Konto zu registrieren? ist schnell und einfach. Es dauert in der Regel nur wenige Minuten. Es kann jedoch einige Tage dauern, bis PayPal Ihr Bankkonto oder Ihre Kreditkarteninformationen überprüft.

Kann ich mich für mehr als ein PayPal -Konto registrieren? ein Paypal -Konto. Jedes Konto muss jedoch über eine eindeutige E -Mail -Adresse und finanzielle Informationen verfügen. Sie können ein persönliches Konto und ein Geschäftskonto haben.

Was passiert, wenn ich mein PayPal -Passwort während der Registrierung vergesse? das "Passwort vergessen?" Link auf der Anmeldeseite. Sie werden dann aufgefordert, Ihre E -Mail -Adresse einzugeben, und PayPal sendet Ihnen eine E -Mail mit Anweisungen zum Zurücksetzen Ihres Passworts.

Kann ich die Informationen ändern, die ich während der PayPal -Registrierung bereitgestellt habe? Melden Sie sich dazu bei Ihrem PayPal -Konto an, gehen Sie zu Ihrem Profil und wählen Sie die Informationen aus, die Sie ändern möchten.

Gibt es eine Gebühr für ein PayPal -Konto? Es gibt keine Gebühr, um sich für ein PayPal -Konto zu registrieren. PayPal erhoben jedoch Gebühren für bestimmte Transaktionen, z. B. Zahlungen für Waren und Dienstleistungen oder das Senden von Geld in ein anderes Land.

Das obige ist der detaillierte Inhalt vonRegistrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Ajax -LadespinnersammlungenNächster Artikel:Ajax -Ladespinnersammlungen