In diesem Artikel wird hauptsächlich das Tutorial zur Entwicklung der PHP-Alipay-Online-Zahlungsschnittstelle vorgestellt, das einen gewissen Referenzwert hat
1 Was ist eine Drittanbieterzahlung? >
Bei der sogenannten Drittanbieterzahlung handelt es sich um eine Transaktionsunterstützungsplattform, die von einigen unabhängigen Drittanbietern bereitgestellt wird, die Verträge mit Großbanken unterzeichnet haben und über bestimmte Stärke- und Glaubwürdigkeitsgarantien verfügen. Bei Transaktionen über eine Zahlungsplattform eines Drittanbieters nutzt der Käufer nach dem Kauf der Ware das von der Drittanbieterplattform bereitgestellte Konto, um die Ware zu bezahlen, und der Dritte benachrichtigt den Verkäufer über den Eingang der Ware. Derzeit gibt es viele Institutionen, die Zahlungen über Dritte anbieten, darunter Alipay, Tenpay, Kuaiqian, Online Banking, Yibao Pay, Yunwang und andere große Zahlungsplattformen. Wenn eine Website eine Drittanbieterzahlung implementieren muss, sollte sie zunächst ein Konto bei der Drittanbieter-Zahlungsplattform beantragen und eine Vereinbarung unterzeichnen. Nach Inkrafttreten der Vereinbarung öffnet die Drittanbieter-Zahlungsplattform die Online-Zahlungsfunktion dafür und die Schnittstelle über ein Programm in die Website integrieren. Warum die Zahlung durch Dritte nutzen? Da die Drittanbieter-Zahlungsplattform Verträge mit großen Banken abgeschlossen hat, müssen Website-Besitzer lediglich ein Konto auf dieser Plattform beantragen, um fast alle Arten von Bankkarten- und Kreditkartentransaktionen zu unterstützen.2. Drittpartei-Zahlungsprinzip
Oben wird der Zahlungsvorgang natürlich kurz erläutert , es entfällt Bei einigen Schritten (z. B. Warenkorb, Bestellung usw.) konzentrieren wir uns auf den Bezahlvorgang. 2.1 Der Benutzer initiiert eine Anfrage zur Bestätigung der Bestellung an die Mall-Website 2.2 Die Mall-Website erhält die Anfrage, die Bestelldaten in der Datenbank oder einem anderen Speichermedium zu speichern 2.3 Zurück zur Bestellbestätigungsseite, Seite Es sollen der Bestellbetrag und weitere Informationen angezeigt werden 2.4 Der Nutzer bestätigt die Zahlung und leitet eine Zahlungsaufforderung ein. Hinweis: Die Zahlungsanforderung wird an das Zahlungsgateway (z. B. Alipay, Online-Banking) und nicht an die Website des Einkaufszentrums gesendet. 2.5 Zahlungsseite anzeigen 2.6 Der Benutzer gibt die Authentifizierungsinformationen (Kontopasswort usw.) ein und sendet 2.7 Hier gibt es zwei Schritte Springen Sie zur Zahlungsseite, nachdem der Abzug erfolgreich war, und zum anderen zur Zahlungsbenachrichtigung. Diese beiden Schritte können nach Erhalt der Zahlungsbenachrichtigung gleichzeitig ausgeführt werden. Die Website des Einkaufszentrums überprüft die Gültigkeit der Informationen gemäß den Überprüfungsregeln und nimmt entsprechende Änderungen vor (z. B. gültig). Wenn die Bestellung in den Status „Bezahlt“ geändert wird, werden illegale Anforderungsinformationen aufgezeichnet, wenn sie ungültig ist. Nehmen Sie Alipay als Beispiel: Wenn Sie die Alipay-Schnittstelle in Ihre Website integrieren möchten, müssen Sie zunächst über ein Alipay-Konto verfügen, dann das Online-Zahlungsgeschäft mit Alipay beantragen und einen Vertrag unterzeichnen. Nach Inkrafttreten der Vereinbarung gibt Alipay der Website eine Partner-ID und einen Sicherheitsverifizierungscode. Mit diesen beiden Dingen können Sie die Alipay-Schnittstelle gemäß dem Alipay-Schnittstellendokument entwickeln. Es gibt jeweils nur 4 und 7 Schritt beinhaltet den Informationsaustausch zwischen dem Einkaufszentrum und dem Zahlungsgateway. In Schritt 4 bedeutet dies, dass die Daten an das Zahlungsgateway (Alipay) gesendet werden. In Schritt 7 fordert das Verifizierungsgateway die Informationen gemäß den Verifizierungsregeln an. Wir entwickeln fast alle Zahlungsschnittstellen. Der Schwerpunkt liegt auf der Entwicklung dieser beiden Teile. Wenn Sie die Prinzipien der Zahlungsschnittstelle verstehen, wird es nicht schwierig sein, die Zahlungsschnittstelle zu entwickeln.
3. Entwicklung der Alipay-Schnittstelle
3.1 Einführung und Test der Schnittstelle Alipay bietet derzeit garantierte Transaktionen, Standard-Sofortzahlung, Doppelfunktionen usw Es gibt mehrere Schnittstellen, es gibt jedoch einige Unterschiede in den Funktionen. Die Website-Integrationsmethode ist dieselbe. Am Beispiel der Standard-Sofortkontoschnittstelle sind nach der Unterzeichnung einer Vereinbarung mit Alipay mehrere Schritte erforderlich, um die Integration abzuschließen. Wählen Sie den Link aus, der als nächstes unter „Ich möchte Self-Service-Integration“ angezeigt wird, und klicken Sie, um die technische Dokumentation herunterzuladen. Die heruntergeladene Datei enthält die Standardschnittstelle für Alipay-Transaktionsdienste, Händlertools, einen Leitfaden zur Schnittstellenintegration und andere Schnittstellendokumente sowie in mehreren Sprachen verfasste Demos. Wir können neue Produkte gemäß den Regeln gemäß den Schnittstellendokumenten entwickeln , oder Es kann basierend auf der Demo geändert und in die Website integriert werden. Es ist zu beachten, dass die Zahlungsschnittstelle im öffentlichen Netzwerk entwickelt werden muss (auf den Server muss über das externe Netzwerk zugegriffen werden können), um den gesamten Debugging-Prozess abzuschließen. Wenn der Server nicht über das externe Netzwerk erreichbar ist, kann die Zahlung nicht benachrichtigt werden. Sehen Sie sich die Funktion jeder Datei in der Demo an: Sie wurde hier heruntergeladen (siehe den Pay-Ordner im Ressourcenverzeichnis). Es wurden Änderungen hinzugefügt, um das Debuggen zu erleichtern. Wir haben mehrere Dateien erstellt und eine Datentabelle hinzugefügt, um die Bestellinformationen zu speichern. Wir ändern die Konfigurationsdatei, um einen Testvorgang abzuschließen. alipay_config.php ist die grundlegende Informationskonfigurationsdatei. Wir müssen die im Alipay-Backend erhaltene PID und den Schlüssel in die Konfigurationsdatei schreiben. Konfigurationselemente:Die Daten in der Box sind das, auf dessen Änderung wir uns konzentrieren müssen. Der Unterschied zwischen der Zahlungsbenachrichtigungsadresse und der Rücksendeadresse wurde bereits erwähnt. In Schritt 7 gibt es zwei Elemente: die Zahlungsergebnisseite und die Zahlungsbenachrichtigungsinformationen. Die Zahlungsergebnisseite springt automatisch zu dieser Adresse, nachdem der Benutzer die Zahlung abgeschlossen hat . Hier ist die Absenderadresse ( $return_url).
Die Zahlungsbenachrichtigungsadresse ist auch die Zahlung des Benutzers. Nach Abschluss der Zahlung fordert Alipay die Adresse ($notify_url) an, die Zahlungsbenachrichtigung wird jedoch direkt vom Benutzer angefordert Alipay-Server und wird vom Benutzer nicht gesehen. Diese beiden Adressen müssen im vollständigen Pfadformat beginnend mit http vorliegen. Um den Testvorgang abzuschließen, wurde /pay/alipay/notify_url.php hier umgeschrieben und $notify_url auf die URL gesetzt, die auf diese Datei zugreifen kann. Nachdem diese Elemente konfiguriert wurden, wird eine Datentabelle gemäß dem Datenbankskript (pay/orders.sql) erstellt. Und ändern Sie mysql_config.php entsprechend den Konfigurationsinformationen der Datenbank. Durch einfaches Ändern der von Alipay bereitgestellten Demo können Sie die Erstellung der Zahlungsanforderung abschließen (Schritt 4). Hier werden die Zahlungshomepage und andere Seiten geändert pay-Verzeichnis des Quellcode-Pakets). Testen wir es zunächst:
Der Datenbank wurden „Bestellinformationen“ hinzugefügt
Wenn Sie auf die Schaltfläche „Zahlung bestätigen“ oder „Bestätigen“ klicken Der Zahlungslink springt zur Alipay-Seite und übermittelt die Informationen über das POST-Formular an das Zahlungsgateway, wenn er auf die Schaltfläche klickt. Da die Zahlungsanforderungsdaten für den Benutzer nicht sichtbar sein müssen, werden sie in das ausgeblendete Feld geschrieben. Der Zahlungsbestätigungslink wird über die URL weitergeleitet. Da die Alipay-Schnittstelle die Übermittlung per POST oder GET ermöglicht, sind beide Methoden akzeptabel. Nach der Übermittlung der Parameter an das Zahlungsgateway springt die Seite zur Zahlungsseite. Wir sehen das Bild unten:
Wir sehen, dass Alipay uns zwei Zahlungsmethoden zur Verfügung stellt, eine über ein Alipay-Konto und die andere über eine Bankkartenzahlung. Wenn Sie beispielsweise mit einer Bankkarte bezahlen möchten, geben Sie Ihre E-Mail-Adresse oder Mobiltelefonnummer ein, um zur folgenden Seite zu gelangen:
Unsere Abrechnung Alipay unterstützt fast alle Banken Kartenzahlungen sowie Kreditkarten und Filialen Wählen Sie zum Bezahlen die entsprechende Bank aus und folgen Sie den Anweisungen zur Zahlung. Nachdem die Zahlung abgeschlossen ist, kehrt die Seite zur $return_url-Adresse zurück, die wir in der Konfigurationsdatei konfiguriert haben, und der „Bestellstatus“ ändert sich ebenfalls.
Hinweis: Wenn während des Tests kein externer Netzwerktest stattfindet (d. h., auf die Zahlungsbenachrichtigungsadresse kann nicht über das externe Netzwerk zugegriffen werden), kann die Zahlungsbenachrichtigung nicht angefordert werden , und der Bestellstatus kann nicht automatisch geändert werden.
3.2 Alipay-Schnittstellenspezifikation und Codeanalyse
Informationen zur Alipay-Schnittstellenspezifikation finden Sie unter /pay/doc/Standard Alipay Transaction Service Interface (für Anti-Phishing-Websites). PDF, das bereits eine relativ detaillierte Anleitung enthält.
3.2.1 So erstellen Sie eine Zahlungsanforderung
Im vorherigen Test haben wir auf „Zahlung bestätigen“ geklickt, um die Informationen an das Zahlungsgateway von Alipay zu übermitteln. Wir können darüber nachdenken, welche Parameter gesendet werden sollen . zum Zahlungsgateway. Die Liste der Anforderungsparameter finden Sie in der Standardschnittstelle des Alipay-Transaktionsdienstes (speziell für Anti-Phishing-Websites). 3.2.2 im PDF-Format. Es ist zu beachten, dass wir diese Parameter nicht nur intakt an Alipay übermitteln müssen. Um die Datensicherheit zu gewährleisten, verwendet Alipay derzeit die MD5-Signatur, um Datenmanipulationen zu verhindern.
Bevor Sie die Daten übermitteln, müssen Sie die zu übermittelnden Daten nach bestimmten Regeln (siehe Schnittstellendokument) zu einer Zeichenfolge zusammensetzen, den Sicherheitsprüfcode (Schlüssel) hinzufügen, um eine neue Zeichenfolge zu bilden, und diese generieren eine 32-Wörter-Zeichenfolge durch die Signatur des MD5-Abschnitts. Wenn wir eine Zahlungsanforderung einreichen, müssen wir auch diese Signatur einreichen. Schauen Sie sich den Quellcode des Formulars an
Nach Erhalt der Parameter überprüft Alipay die Legitimität der Anforderungsparameter. Nach der Überprüfung wird die Zahlungsseite angezeigt, andernfalls eine Es wird ein Fehler angezeigt.
3.2.2 So überprüfen Sie die Zahlungsbenachrichtigung
Nachdem die Zahlung des Benutzers abgeschlossen ist, fordert Alipay die Zahlungsbenachrichtigungsadresse der Website an (diese Adresse sollte beim Erstellen der Zahlungsanforderung als Parameter übergeben werden). Die Liste der Rückgabeparameter finden Sie in der Standardschnittstelle des Alipay-Transaktionsdienstes (speziell für Anti-Phishing-Websites). Pdf3.3.1. In den Rücksendedaten von Alipay gibt es auch eine Signaturzeichenfolge (mit derselben Signaturmethode wie in der Zahlungsanforderungsdatei). Die Daten müssen zunächst signiert und überprüft werden. Zusätzlich zur Überprüfung der Signatur muss die notify_id im Parameter auch an das Alipay-Verifizierungs-Gateway-System von Alipay übermittelt werden, um die Authentizität der Benachrichtigung zu überprüfen und die Überprüfung zu benachrichtigen. Das Alipay-System bestimmt selbst, ob die Benachrichtigung im String-Format vorliegt, andernfalls wird die Authentizität der Anfrage durch Überprüfung der vom Server zurückgegebenen Daten überprüft kann die Bestelldaten ändern und E-Mails an den Benutzer senden und andere Vorgänge durchführen. Zur Überprüfung der Signaturen können Sie einen Blick auf den Quellcode in der Benachrichtigungsdatei werfen. In der Demo wird die notify_id im Parameter per POST an Alipay übermittelt und die Rückgabedaten erhalten:
Der Fokus liegt hier beim Senden auf der Funktion fsockopen Eine E-Mail Wir haben bereits das Öffnen einer Socket-Verbindung über diese Funktion kennengelernt. Ähnlich wie die Funktion fopen, die wir zuvor kennengelernt haben, gibt sie ein Dateihandle zurück, und dann können Sie die Dateifunktionen (fgets(), fgetss(), fputs() verwenden. ), fclose() feof() usw.), um es zu bedienen. Der Code verwendet die Funktion fputs() (wie fwrite()), um Daten zu schreiben, um das Senden von Daten durch das Formular im POST-Modus zu simulieren und schließlich die zurückgegebenen Daten abzurufen Führen Sie die Funktion fgets() durch, speichern Sie sie in einem Array und führen Sie schließlich eine Überprüfung durch. Weitere Informationen finden Sie im Quellcode.
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
So implementieren Sie maskierende Schlüsselwörter in PHP
Benutzerdefinierte Array-Sortierfunktion und Sortierung in der PHP-Klasse implementiert Methoden
Benutzerdefinierte Array-Sortierfunktion, implementiert durch PHP und Sortierklassenmethoden
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Implementierung der Alipay-Online-Zahlungsschnittstellenentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!