Das Folgende ist ein Beispiel für die Integration der Alipay APP-Zahlung auf dem PHP-Server. Es hat einen guten Referenzwert und ich hoffe, es wird für alle hilfreich sein. Werfen wir gemeinsam einen Blick darauf
Die Alipay-Zahlung ist in viele Szenarien unterteilt. Hier beschreiben wir nur die Integration der Alipay-APP-Zahlungsfunktion. Während des Prozesses sind wir auf besonders große Fallstricke gestoßen, daher werde ich den Integrationsprozess kurz beschreiben Beschreiben Sie die aufgetretenen Probleme und Lösungen
Da das Geschäft des Unternehmens einfach ist und nur Alipay-Zahlungen unterstützt, müssen Sie sich nicht um zusätzliche Funktionen wie Rückerstattungen, Anfragen usw. kümmern. Daher wird in diesem Artikel nur beschrieben, wie die Der Server bereitet die APP zum Abrufen von Zahlungsaufträgen vor, wenn die Alipay-Zahlungsschnittstelle verwendet wird. Der allgemeine Vorgang ist wie folgt:
1. Erstellen Sie eine Anwendung und Konfiguration
Zuerst müssen Sie zur Ant Financial-Entwicklungsplattform (open.alipay.com) gehen, um die Anwendung zu registrieren, die Anwendungs-ID zu erhalten und die Anwendung zu konfigurieren. Die Konfiguration umfasst hier hauptsächlich die Unterzeichnung eines Vertrags und die Generierung der RSA2-Öffentlichkeit der Anwendung Private Schlüssel und Erhalt des von Alipay bereitgestellten öffentlichen Zahlungsschlüssels. Im Hintergrund dieses Teils der offiziellen Website ist es relativ einfach, das entsprechende SDK herunterzuladen
Hier integriere ich den Dienst in den PHP-Hintergrund, also habe ich das PHP SDK heruntergeladen, Adresse: https://docs.open.alipay.com/54/103419/
3. Bereiten Sie einen zugänglichen echten Domainnamen vor
4 >Nachdem die oben genannten drei Schritte abgeschlossen sind, können wir jetzt unseren eigenen Geschäftscode konfigurieren
4.1 APP-Zahlung organisieren Zahlungsauftragsinformationen zu diesem Zeitpunkt
rrree4.2. Asynchrone Rückrufverarbeitung nach erfolgreicher Alipay-Zahlung
<?php require_once (__DIR__.'/alipay-sdk-PHP-20171023143822/AopSdk.php'); class Alipay { /** * 应用ID */ const APPID = '你的应用ID'; /** *请填写开发者私钥去头去尾去回车,一行字符串 */ const RSA_PRIVATE_KEY = '应用对应开发者私钥'; /** *请填写支付宝公钥,一行字符串 */ const ALIPAY_RSA_PUBLIC_KEY = '支付宝提供的公钥'; /** * 支付宝服务器主动通知商户服务器里指定的页面 * @var string */ private $callback = "http://www.test.com/notify/alipay_notify.php"; /** *生成APP支付订单信息 * @param string $orderId 商品订单ID * @param string $subject 支付商品的标题 * @param string $body 支付商品描述 * @param float $pre_price 商品总支付金额 * @param int $expire 支付交易时间 * @return bool|string 返回支付宝签名后订单信息,否则返回false */ public function unifiedorder($orderId, $subject,$body,$pre_price,$expire){ try{ $aop = new \AopClient(); $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $aop->appId = self::APPID; $aop->rsaPrivateKey = self::RSA_PRIVATE_KEY; $aop->format = "json"; $aop->charset = "UTF-8"; $aop->signType = "RSA2"; $aop->alipayrsaPublicKey = self::ALIPAY_RSA_PUBLIC_KEY; //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay $request = new \AlipayTradeAppPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数 $bizcontent = "{\"body\":\"{$body}\"," //支付商品描述 . "\"subject\":\"{$subject}\"," //支付商品的标题 . "\"out_trade_no\":\"{$orderId}\"," //商户网站唯一订单号 . "\"timeout_express\":\"{$expire}m\"," //该笔订单允许的最晚付款时间,逾期将关闭交易 . "\"total_amount\":\"{$pre_price}\"," //订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000] . "\"product_code\":\"QUICK_MSECURITY_PAY\"" . "}"; $request->setNotifyUrl($this->callback); $request->setBizContent($bizcontent); //这里和普通的接口调用不同,使用的是sdkExecute $response = $aop->sdkExecute($request); //htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题 return htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。 }catch (\Exception $e){ return false; } } }
5 .Aufgetretene Probleme
5.1. Melden Sie weiterhin den Fehler 40001=>isv.invalid-signaturUm den Grund herauszufinden, habe ich hat die öffentlichen und privaten RSA2-Schlüssel der Anwendung mehrmals neu generiert, aber festgestellt, dass es nicht funktioniert hat. In Kombination mit Online-Informationen stellte sich heraus, dass es sich bei um die Alipay-Rückrufadresse notifyUrl handelte, die kein „?“ enthalten und keine Parameter nach ? hinzufügen darf 🎜>5.2. Asynchrone Alipay-Benachrichtigung Es war erfolgreich, aber $_POST war leer.
Als ich damit anfing, folgte ich dem Vorschlag von Alipay, eine HTTS-Anfrage zu verwenden. Auf diese Weise meldet der Anwendungshintergrund jedoch immer wieder, dass kein Parameterinhalt vorhanden ist. Schließlich fiel mir ein, dass die Parameter des Alipay-Serverrückrufs leer sind, da unsere Anwendung die bidirektionale HTTP-Authentifizierung verwendet. Ändern Sie abschließend die Rückrufadresse in HTTP und überprüfen Sie, ob sie erfolgreich ist.
Wenn Sie auf Probleme stoßen, überprüfen Sie zunächst die Dokumentbeschreibung von Alipay und die von Alipay bereitgestellte Fehlercodeerklärung. Wenn es nicht funktioniert, verwenden Sie einfach Baidu oder Google , und Sie fahren fort: Nach dem Testen und Überprüfen wird das Problem am Ende definitiv gelöstZu diesem Zeitpunkt ist die Zahlungsfunktion der Alipay-App abgeschlossen, andere Rückerstattungs-, Kontoauszugs- und andere Funktionen der APP jedoch nicht Laut den Dokumenten der offiziellen Website von Alipay und dem von Alipay bereitgestellten SDK ist es jedoch nur eine Frage der Zeit, bis es in Ihre eigene Anwendung integriert wird. Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:PDO-Vorverarbeitungsanweisung PDOStatement-Objekt
PHP voll funktionsfähige Nicht-Deformations-Bildzuschneideoperationsklasse und Einführung in die NutzungDas obige ist der detaillierte Inhalt vonSo integrieren Sie die Alipay APP-Zahlung in den PHP-Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.

Verwenden Sie in PHP das Klonschlüsselwort, um eine Kopie des Objekts zu erstellen und das Klonierungsverhalten über die \ _ \ _ Clone Magic -Methode anzupassen. 1. Verwenden Sie das Klonschlüsselwort, um eine flache Kopie zu erstellen und die Eigenschaften des Objekts, nicht die Eigenschaften des Objekts zu klonen. 2. Die \ _ \ _ Klonmethode kann verschachtelte Objekte tief kopieren, um flache Kopierprobleme zu vermeiden. 3. achten Sie darauf, dass kreisförmige Referenzen und Leistungsprobleme beim Klonen vermieden werden, und optimieren Sie die Klonierungsvorgänge, um die Effizienz zu verbessern.

PHP eignet sich für Webentwicklungs- und Content -Management -Systeme, und Python eignet sich für Datenwissenschafts-, maschinelles Lernen- und Automatisierungsskripte. 1.PHP hat eine gute Leistung beim Erstellen von schnellen und skalierbaren Websites und Anwendungen und wird üblicherweise in CMS wie WordPress verwendet. 2. Python hat sich in den Bereichen Datenwissenschaft und maschinelles Lernen mit reichen Bibliotheken wie Numpy und TensorFlow übertrifft.

Zu den wichtigsten Spielern in HTTP-Cache-Headern gehören Cache-Control, ETAG und Last-modifiziert. 1.Cache-Control wird verwendet, um die Richtlinien zu kontrollieren. Beispiel: Cache-Control: max-ay = 3600, öffentlich. 2. ETAG überprüft Ressourcenänderungen durch eindeutige Identifikatoren, Beispiel: ETAG: "686897696A7C876B7E". 3. Last-modifiziert gibt die letzte Änderungszeit der Ressource an, Beispiel: Last-Modified: Mi, 21okt201507: 28: 00GMT.

In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP ist eine serverseitige Skriptsprache, die für dynamische Webentwicklung und serverseitige Anwendungen verwendet wird. 1.PHP ist eine interpretierte Sprache, die keine Zusammenstellung erfordert und für die schnelle Entwicklung geeignet ist. 2. PHP -Code ist in HTML eingebettet, wodurch es einfach ist, Webseiten zu entwickeln. 3. PHP verarbeitet die serverseitige Logik, generiert die HTML-Ausgabe und unterstützt Benutzerinteraktion und Datenverarbeitung. 4. PHP kann mit der Datenbank interagieren, die Einreichung von Prozessformularen und serverseitige Aufgaben ausführen.

PHP hat das Netzwerk in den letzten Jahrzehnten geprägt und wird weiterhin eine wichtige Rolle bei der Webentwicklung spielen. 1) PHP stammt aus dem Jahr 1994 und ist aufgrund seiner Benutzerfreundlichkeit und der nahtlosen Integration in MySQL die erste Wahl für Entwickler. 2) Zu den Kernfunktionen gehört das Generieren dynamischer Inhalte und die Integration in die Datenbank, sodass die Website in Echtzeit aktualisiert und auf personalisierte Weise angezeigt wird. 3) Die breite Anwendung und das Ökosystem von PHP hat seine langfristigen Auswirkungen angetrieben, steht jedoch auch mit Versionsaktualisierungen und Sicherheitsherausforderungen gegenüber. 4) Leistungsverbesserungen in den letzten Jahren, wie die Veröffentlichung von PHP7, ermöglichen es ihm, mit modernen Sprachen zu konkurrieren. 5) In Zukunft muss PHP sich mit neuen Herausforderungen wie Containerisierung und Microservices befassen, aber seine Flexibilität und die aktive Community machen es anpassungsfähig.

Zu den Kernvorteilen von PHP gehören einfacher Lernen, starke Unterstützung für Webentwicklung, reiche Bibliotheken und Rahmenbedingungen, hohe Leistung und Skalierbarkeit, plattformübergreifende Kompatibilität und Kosteneffizienz. 1) leicht zu erlernen und zu bedienen, geeignet für Anfänger; 2) gute Integration in Webserver und unterstützt mehrere Datenbanken. 3) leistungsstarke Frameworks wie Laravel; 4) hohe Leistung kann durch Optimierung erzielt werden; 5) mehrere Betriebssysteme unterstützen; 6) Open Source, um die Entwicklungskosten zu senken.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft