Heim > Backend-Entwicklung > PHP-Tutorial > Einführung in die Implementierung des Alipay-Zahlungsprozesses durch PHP

Einführung in die Implementierung des Alipay-Zahlungsprozesses durch PHP

零到壹度
Freigeben: 2023-03-23 16:16:01
Original
7562 Leute haben es durchsucht

Der Inhalt dieses Artikels ist eine Einführung in die Implementierung des Alipay-Zahlungsprozesses. Er hat einen gewissen Referenzwert.

1 , Lassen Sie uns zunächst über die Zahlung durch Dritte sprechen.

Die sogenannte Zahlung durch Dritte ist ein unabhängiger Dritter, der Verträge mit einigen großen Unternehmen unterzeichnet hat Banken und verfügt über bestimmte Stärke- und Glaubwürdigkeitsgarantien.

Zu den derzeit am Markt verbreiteten Plattformen gehören Alipay, Tenpay, Online-Banking, Yibao Pay usw . Websites, die eine Drittanbieterzahlung implementieren müssen, sollten zunächst ein Konto bei einem Drittanbieter beantragen und eine Vereinbarung unterzeichnen. Nach Inkrafttreten der Vereinbarung aktiviert die Drittanbieterzahlungsplattform die Online-Zahlungsfunktionen.

2. Das Prinzip der Fremdzahlung

2.1 Der Benutzer initiiert eine Anfrage zur Bestätigung der Bestellung an die Website des Einkaufszentrums

2.2 Mall Die Website erhält eine Anfrage, die Bestelldaten in der Datenbank oder einem anderen Speichermedium zu speichern

2.3 Zurück zur Bestellbestätigungsseite, auf der der Bestellbetrag und angezeigt werden sollen Sonstige Informationen

2.4 Der Nutzer bestätigt die Zahlung und löst eine Zahlungsaufforderung aus. 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: Der eine besteht darin, zur Zahlungsergebnisseite zu springen (die dem Benutzer angezeigt wird), nachdem der Abzug erfolgreich war, und der andere ist die Ausführung der Zahlungsbenachrichtigung gleichzeitig in keiner Reihenfolge Nach Erhalt der Zahlungsbenachrichtigung überprüft die Website des Einkaufszentrums die Gültigkeit der Informationen und nimmt entsprechende Änderungen vor (Beispiel: Wenn gültig, ändern Sie die Bestellung in den Status „Bezahlt“, wenn ungültig, erfassen Sie die illegale Anfrage Information).

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.

Tatsächlich ist das, was wir getan haben, wenn wir uns das Bild ansehen, sehr begrenzt, im Wesentlichen zwischen 1 und 3, Bestelldaten generieren und diese dann über Alipay authentifizieren intern (Natürlich entfallen einige Warenkorb- und Bestellschritte), im Grunde ist der Vorgang abgeschlossen.

3. Alipay-Schnittstellenentwicklung

3.1 Schnittstelleneinführung und -tests

Im Moment bietet Alipay mehrere Schnittstellen wie garantierte Transaktionen, Standard-Sofortzahlung und Doppelfunktionen. Es gibt nur einige Unterschiede bei den Funktionen. Die Integrationsmethoden sind dieselben Die zeitnahe Zahlungsschnittstelle als Beispiel: Nach der Unterzeichnung einer Vereinbarung mit Alipay sind 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.

In der heruntergeladenen Datei befinden sich Standardschnittstellen für Alipay-Transaktionsdienste, Händlertools, Anleitungen zur Schnittstellenintegration und andere Schnittstellendokumente sowie in mehreren Sprachen verfasste Demos Dokumente Es wird gemäß den Regeln neu entwickelt oder 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 (der Server muss über das externe Netzwerk erreichbar sein). ), um den gesamten Debugging-Prozess abzuschließen. Wenn über das externe Netzwerk nicht auf den Server zugegriffen werden kann, können Sie keine Zahlungsbenachrichtigungen erhalten.


Die Rolle jeder Datei in der Demo

│ ├alipay_core.function.php ┈┈┈┈┈┈Öffentliche Funktionsdatei der Alipay-Schnittstelle
│ │
│ ├alipay_notify.class.php┈┈┈┈┈┈┈Alipay-Benachrichtigungsverarbeitungsklasse Datei
│ │
│ ├alipay_submit.class.php┈┈┈┈┈┈┈Alipay-Schnittstelle fordert die Übermittlung von Klassendateien an
│ │
│ └alipay_md5.function.php┈┈┈┈┈ ┈┈Alipay Interface MD5 Funktionsdatei

├log.txt┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈Protokolldatei

├alipay.config.php┈ ┈┈┈ ┈ ┈┈┈┈┈┈┈Grundkonfigurationsdatei

├alipayapi.php┈┈┈┈┈┈┈┈┈┈┈┈┈┈Alipay-Schnittstelleneintragsdatei notify_url. PHP Asynchrone Serverbenachrichtigung Seitendatei

├Return_url.php ┈┈┈┈┈┈┈┈┈┈┈┈┈ Seitensprung-synchrone Benachrichtigungsdatei

├cacert.pem ┈┈┈┈┈ ┈┈┈ ┈┈┈┈┈┈┈CA-Zertifikatsdatei zur Überprüfung von SSL in CURL

└readme.txt ┈┈ ┈ ┈┈┈┈┈┈┈┈┈┈┈┈Anweisungstext






Es wurde hier heruntergeladen (siehe Ordner mit den Zahlungsdateien im Ressourcenverzeichnis). Um das Debuggen zu erleichtern, wurden mehrere Dateien hinzugefügt und geändert sowie Daten Die Tabelle wurde 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).

$host = $_SERVER['HTTP_HOST'];
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
//合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,查看地址: 
$alipay_config['partner'] = '****************';

//收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号
$alipay_config['seller_id'] = $alipay_config['partner'];

// MD5密钥,安全检验码,由数字和字母组成的32位字符串,查看地址: 
$alipay_config['key'] = '****************************';

// 服务器异步通知页面路径  需 
$alipay_config['notify_url'] = "
 
// 页面跳转同步通知页面路径 需 
$alipay_config['return_url'] = "http://".$host."/paycallback/return";

// 客户端的IP地址 非局域网的外网IP地址,如:221.0.0.1
$alipay_config['exter_invoke_ip'] = "182.92.27.46";
Nach dem Login kopieren





Die Zahlungsbenachrichtigungsadresse ist auch die Adresse, die Alipay anfordert, nachdem der Benutzer den Vorgang abgeschlossen hat die Zahlung ( $notify_url), aber die Zahlungsbenachrichtigung wird direkt vom Alipay-Server angefordert und ist für den Benutzer nicht sichtbar. 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 zuerst:





Der Datenbank wurden „Bestellinformationen“ hinzugefügt

Wenn Sie auf die Schaltfläche „Zahlung bestätigen“ klicken Über den Link „Zahlung bestätigen“ wird auf die Alipay-Seite gesprungen. Wenn Sie auf die Schaltfläche klicken, werden die Informationen über das Formular „POST“ an das Zahlungs-Gateway übermittelt in das verborgene Feld geschrieben. Der Link zur Zahlungsbestätigung 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 folgendes Bild:



Wir sehen, dass Alipay uns zwei Zahlungsmethoden zur Verfügung stellt, eine über ein Alipay-Konto und eine über eine Bankkarte. Wählen Sie beispielsweise die Zahlung mit einer Bankkarte, geben Sie Ihre E-Mail-Adresse oder Mobiltelefonnummer ein und springen Sie zur folgenden Seite:



Unsere Abrechnung Alipay unterstützt fast alle Bankkartenzahlungen sowie Kreditkarten- und Filialzahlungsmethoden. Wählen Sie 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

Die Alipay-Schnittstellenspezifikation finden Sie unter /pay/doc/Standard Alipay Transaction Service Interface (zur Verhinderung von Phishing-Websites bestimmt). PDF, das bereits eine relativ detaillierte Anleitung enthält.

3.2.1 So erstellen Sie eine Zahlungsanfrage

Im vorherigen Test haben wir auf „Zahlung bestätigen“ geklickt, um die Informationen an Alipay zu übermitteln Bei Zahlungsgateways können wir darüber nachdenken, welche Parameter an das Zahlungsgateway gesendet werden sollen. Die Liste der Anforderungsparameter finden Sie in der Standardschnittstelle des Alipay-Transaktionsdienstes (speziell für Anti-Phishing-Websites). 3.2.2 im PDF. 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 zusammenfügen und den Sicherheitsprüfcode (Schlüssel) hinzufügen Über MD5 wird eine neue Zeichenfolge generiert. Wenn wir eine Zahlungsanforderung einreichen, müssen wir diese Signatur ebenfalls einreichen. Schauen Sie sich den Quellcode des Formulars an



Alipay wird fortfahren Überprüfen Sie nach Erhalt der Parameter die Rechtmäßigkeit der Anforderungsparameter. Nach der Überprüfung wird die Zahlungsseite angezeigt. Andernfalls wird eine Fehlermeldung 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 entscheidende Punkt ist die fsockopen-Funktion, die wir bereits beim Senden von E-Mails kennengelernt haben Ähnlich wie bei fopen, das wir zuvor gelernt haben, gibt die Funktion ein Dateihandle zurück, das dann mit Dateifunktionen (fgets(), fgetss(), fputs(), fclose(), fputs() bedient werden kann. ) wird im Code verwendet (wie fwrite() )) Funktion, Daten schreiben, um die Formularübermittlung von Daten im POST-Modus zu simulieren, und schließlich die zurückgegebenen Daten über die Funktion fgets() abrufen und in einem Array speichern, und schließlich Überprüfen Sie es. Weitere Informationen finden Sie im Quellcode.

Das obige ist der detaillierte Inhalt vonEinführung in die Implementierung des Alipay-Zahlungsprozesses durch PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage