Heim Backend-Entwicklung PHP-Problem So implementieren Sie die WeChat-QR-Code-Zahlung in PHP

So implementieren Sie die WeChat-QR-Code-Zahlung in PHP

Apr 19, 2023 am 09:20 AM

Mit der Popularität des mobilen Bezahlens hat sich WeChat zu einer der am weitesten verbreiteten Zahlungsmethoden in China entwickelt. WeChat Pay bietet eine Vielzahl von Zahlungsmethoden und auch die Zahlung per QR-Code wird von immer mehr Nutzern begrüßt. In diesem Artikel wird erläutert, wie Sie mit PHP die WeChat-QR-Code-Zahlung implementieren.

1. Voraussetzungen

Bevor Sie beginnen, müssen Sie die folgenden Bedingungen vorbereiten:

  1. WeChat-Entwicklerkonto#🎜 🎜#
  2. Bewerben Sie sich für die WeChat-Zahlungsfunktion über
  3. Aufbau einer PHP-Entwicklungsumgebung
  4. WeChat-Zahlungs-SDK
2. WeChat-Zahlungsprozess

Der Prozess der WeChat-Zahlung lässt sich kurz wie folgt zusammenfassen:

    Der Benutzer öffnet die Zahlungsseite des Händlers und wählt die Zahlungsmethode aus
  1. #🎜 🎜#Der Händler sendet die Bestellinformationen des Benutzers an WeChat Pay
  2. WeChat Pay generiert einen QR-Code und sendet ihn an den Händler zurück
  3. Der Händler zeigt den QR-Code an Benutzer
  4. Benutzer verwenden WeChat, um den QR-Code zu scannen und die Zahlung abzuschließen
  5. WeChat-Zahlung sendet Benachrichtigungen über Zahlungsergebnisse an Händler
  6. In Um die WeChat-QR-Code-Zahlung zu implementieren, müssen wir die entsprechenden Schritte der Reihe nach gemäß dem oben genannten Prozess ausführen.

3. Implementierungsschritte

Zahlungsauftrag erstellen
  1. Auf der Händler-Website muss der Benutzer ausfüllen Geben Sie die Bestellinformationen ein und wählen Sie die WeChat-Zahlungsmethode. Nachdem der Benutzer die Bestellung abgeschickt hat, muss der Händler die Bestellinformationen an WeChat Pay senden.

In PHP können wir die CURL-Bibliothek verwenden, um POST-Anfragen an die WeChat-Zahlungs-API zu senden. Das Folgende ist ein Beispielcode:

$url = "https://api.mch.weixin.qq.com/pay/unifiedorder";
$fields = array(
    "appid" => "YOUR_APP_ID", // 公众号ID或应用ID
    "mch_id" => "YOUR_MCH_ID", // 商户号
    "nonce_str" => uniqid(), // 随机字符串
    "out_trade_no" => "YOUR_ORDER_NUMBER", // 商户订单号
    "total_fee" => "YOUR_ORDER_AMOUNT", // 订单金额,单位为分
    "spbill_create_ip" => $_SERVER["REMOTE_ADDR"], // 用户端实际ip
    "notify_url" => "YOUR_NOTIFY_URL", // 支付通知回调地址
    "trade_type" => "NATIVE", // 交易类型,NATIVE为扫码支付
    "product_id" => "PRODUCT_ID", // 商品ID
);
$fields["sign"] = make_sign($fields, "YOUR_MCH_KEY"); // 签名字段
$xml = array_to_xml($fields); // 将数组转换为XML格式
$response = curl_post($url, $xml); // 发送POST请求
$result = xml_to_array($response); // 将响应XML转换为数组格式
Nach dem Login kopieren

Im obigen Code verwenden wir die folgenden Funktionen:

uniqid() Wird verwendet um eine eindeutige Zufallszeichenfolge zu generieren
  • make_sign() Wird zum Generieren einer Signatur verwendetuniqid() 用于生成一个唯一的随机字符串
  • make_sign() 用于生成签名
  • array_to_xml() 将数组转换为XML格式
  • curl_post() 发送POST请求
  • xml_to_array() 将XML转换为数组格式

其中,签名生成的代码如下:

function make_sign($fields, $key) {
    $string = "";
    ksort($fields);
    foreach ($fields as $k => $v) {
        if ($k != "sign" && $v != "" && !is_array($v)) {
            $string .= $k . "=" . $v . "&";
        }
    }
    $string .= "key=" . $key;
    return strtoupper(md5($string));
}
Nach dem Login kopieren

需要注意的是,商户号和API密钥可在微信支付商户平台中获取。

  1. 生成二维码

在获取到微信支付的响应后,商户需要解析响应中的二维码链接,并将其生成二维码。PHP中,我们可以使用PHPQRCode库来生成二维码,示例代码如下:

require_once("phpqrcode.php");
QRcode::png($result["code_url"]);
Nach dem Login kopieren

在上述代码中,我们首先引入了PHPQRCode库。然后,使用其QRcode::png()方法生成二维码。

  1. 展示二维码

在生成二维码后,商户需要将其展示给用户。在PHP中,我们可以使用<img>标签展示二维码,示例代码如下:

echo "<img src=&#39;data:image/png;base64," . base64_encode(file_get_contents("qrcode.png")) . "&#39; />";
Nach dem Login kopieren

在上述代码中,我们将二维码文件读取为二进制数据,并将其进行Base64编码。然后,将编码后的数据作为图片的URL,使用<img>标签展示二维码。

  1. 支付结果通知

在用户完成支付后,微信支付会向商户的支付结果通知URL推送支付结果。在接收到通知后,商户需要验证通知的有效性,并根据通知中的支付结果更新订单状态。PHP的示例代码如下:

$xml = file_get_contents("php://input");
$data = xml_to_array($xml);
if (check_sign($data, "YOUR_MCH_KEY")) {
    if ($data["return_code"] == "SUCCESS" && $data["result_code"] == "SUCCESS") {
        // 修改订单状态
        // ...
        echo "SUCCESS";
    } else {
        echo "FAIL";
    }
} else {
    echo "FAIL";
}
Nach dem Login kopieren

在上述代码中,我们首先使用file_get_contents("php://input")读取POST请求体中的XML数据,并将其转换为数组格式。然后,使用check_sign()

array_to_xml() konvertiert das Array in XML-Format

curl_post() POST-Anfrage senden

xml_to_array() XML in Array-Format konvertieren #🎜🎜 ##🎜🎜#Der durch die Signatur generierte Code lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Es ist zu beachten, dass die Händlernummer und der API-Schlüssel auf der WeChat Pay-Händlerplattform erhältlich sind. #🎜🎜#
    #🎜🎜#QR-Code generieren#🎜🎜##🎜🎜##🎜🎜#Nachdem der Händler die Antwort von der WeChat-Zahlung erhalten hat, muss er den QR-Code in der Antwort analysieren verlinken und einen QR-Code generieren. In PHP können wir die PHPQRCode-Bibliothek verwenden, um QR-Codes zu generieren. Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Im obigen Code haben wir zuerst die PHPQRCode-Bibliothek eingeführt. Verwenden Sie dann die Methode QRcode::png(), um einen QR-Code zu generieren. #🎜🎜#
      #🎜🎜#QR-Code anzeigen#🎜🎜##🎜🎜##🎜🎜#Nach der Generierung des QR-Codes muss der Händler ihn dem Benutzer anzeigen. In PHP können wir das Tag <img> verwenden, um den QR-Code anzuzeigen. Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Im obigen Code lesen wir den QR Codedatei als Binärdaten erstellen und mit Base64 kodieren. Verwenden Sie dann die codierten Daten als URL des Bildes und verwenden Sie das Tag <img>, um den QR-Code anzuzeigen. #🎜🎜#
        #🎜🎜#Benachrichtigung über Zahlungsergebnisse#🎜🎜##🎜🎜##🎜🎜#Nachdem der Benutzer die Zahlung abgeschlossen hat, überträgt WeChat Pay das Zahlungsergebnis an das Zahlungsergebnis des Händlers Benachrichtigungs-URL. Nach Erhalt der Benachrichtigung muss der Händler die Gültigkeit der Benachrichtigung überprüfen und den Bestellstatus basierend auf dem Zahlungsergebnis in der Benachrichtigung aktualisieren. Der Beispielcode für PHP lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Im obigen Code verwenden wir zunächst file_get_contents("php://input"), um die XML-Daten im zu lesen POST-Anfragetext und konvertieren Sie ihn in das Array-Format. Verwenden Sie dann die Funktion check_sign(), um die Gültigkeit der Signatur zu überprüfen. Abschließend wird der Bestellstatus basierend auf dem Zahlungsergebnis aktualisiert und eine „ERFOLGREICH“ oder „FEHLER“-Antwort an WeChat Pay gesendet. #🎜🎜##🎜🎜# 4. Zusammenfassung #🎜🎜##🎜🎜# In diesem Artikel wird erläutert, wie Sie PHP zur Implementierung der WeChat-QR-Code-Zahlung verwenden. Während des Implementierungsprozesses müssen Sie auf die Details des WeChat-Zahlungsprozesses achten und PHP-bezogene Funktionen und Bibliotheken sinnvoll nutzen. Ich hoffe, dieser Artikel kann Ihnen bei der Implementierung der WeChat-Zahlung hilfreich sein. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die WeChat-QR-Code-Zahlung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. Mar 26, 2025 pm 04:13 PM

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. Mar 25, 2025 am 10:37 AM

Die JIT -Kompilierung von PHP 8 verbessert die Leistung, indem häufig ausgeführte Code in den Maschinencode zusammengestellt wird, um Anwendungen mit schweren Berechnungen zugute und die Ausführungszeiten zu reduzieren.

PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. Mar 26, 2025 pm 04:18 PM

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. Mar 25, 2025 pm 03:12 PM

In dem Artikel wird die symmetrische und asymmetrische Verschlüsselung in PHP erörtert und ihre Eignung, Leistung und Sicherheitsunterschiede verglichen. Die symmetrische Verschlüsselung ist schneller und für Massendaten geeignet, während asymmetrisch für den sicheren Schlüsselaustausch verwendet wird.

PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. Mar 25, 2025 pm 03:06 PM

In dem Artikel wird die Implementierung einer robusten Authentifizierung und Autorisierung in PHP erörtert, um den nicht autorisierten Zugriff zu verhindern, Best Practices zu beschreiben und sicherheitsrelevante Tools zu empfehlen.

PHP -API -Rate Begrenzung: Implementierungsstrategien. PHP -API -Rate Begrenzung: Implementierungsstrategien. Mar 26, 2025 pm 04:16 PM

In dem Artikel werden Strategien zur Implementierung der API-Rate in PHP erörtert, einschließlich Algorithmen wie Token-Bucket und Leaky Bucket sowie Bibliotheken wie Symfony/Rate-Limiter. Es deckt auch die Überwachung, die dynamischen Einstellungsgeschwindigkeiten und die Hand ab

PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. Mar 25, 2025 pm 03:05 PM

In dem Artikel werden Strategien erörtert, um CSRF-Angriffe in PHP zu verhindern, einschließlich der Verwendung von CSRF-Token, selben Cookies und ordnungsgemäßem Sitzungsmanagement.

PHP -Eingabevalidierung: Best Practices. PHP -Eingabevalidierung: Best Practices. Mar 26, 2025 pm 04:17 PM

In Artikel werden Best Practices für die Validierung der PHP-Eingabe erörtert, um die Sicherheit zu verbessern und sich auf Techniken wie die Verwendung integrierter Funktionen, den Whitelist-Ansatz und die serverseitige Validierung zu konzentrieren.

See all articles