Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Implementierungsmethode im Zusammenhang mit der Bezahlung des WeChat-Miniprogramms

PHP-Implementierungsmethode im Zusammenhang mit der Bezahlung des WeChat-Miniprogramms

WBOY
WBOYOriginal
2023-05-31 21:10:342836Durchsuche

Mit der weit verbreiteten Nutzung von WeChat-Miniprogrammen ist die Zahlung mit dem WeChat-Miniprogramm für immer mehr Händler zu einer notwendigen Zahlungsmethode geworden. Um Händlern den Zugriff auf die Zahlungsfunktion des WeChat-Applets zu erleichtern, wird in diesem Artikel eine auf PHP basierende Implementierungsmethode vorgestellt.

1. Vorbereitung
Bevor Sie auf die Zahlung im WeChat-Miniprogramm zugreifen, müssen Sie die folgenden Schritte vorbereiten:

1.1 Besorgen Sie sich die WeChat-Zahlungshändlernummer und den API-Schlüssel.
Die Händlernummer ist die eindeutige Kennung, die Händler auf der WeChat-Zahlungsplattform, der API, verwenden Schlüssel ist der Zahlungsschlüssel, der bei der Anmeldung bei einem Händler generiert wird und zur Signaturprüfung verwendet wird.
1.2 WeChat-Zahlungszertifikat konfigurieren
Der Händler muss das WeChat-Zahlungszertifikat im Sicherheitsverzeichnis des Servers ablegen und den Zertifikatspfad angeben.
1.3 Erstellen Sie einen HTTPS-Server
WeChat Payment erfordert, dass Händler das HTTPS-Protokoll für die Datenübertragung verwenden, daher muss ein HTTPS-Zertifikat auf dem Server konfiguriert werden.

2. Zahlungsvorgang für das WeChat Mini-Programm
Der Zahlungsvorgang für das WeChat Mini-Programm umfasst im Allgemeinen die folgenden Schritte:

2.1 Benutzer, der eine Bestellung aufgibt: Benutzer wählen Produkte aus und geben Bestellungen über das Mini-Programm auf, und das Mini-Programm sendet die Bestellinformationen an Der Händlerserver zur Verarbeitung.
2.2 Bestellung auf dem Händlerserver
Nach Erhalt der Bestellanfrage des Benutzers generiert der Händlerserver eine Prepaid-Bestellung und sendet sie an das Miniprogramm zurück.
2.3 Das Miniprogramm aktiviert die Zahlung
Nach Erhalt der Vorauszahlungsbestellung aktiviert das Miniprogramm die Zahlungsfunktion über die WeChat-Zahlungs-API.
2.4 Benachrichtigung über das Zahlungsergebnis
Nachdem die Zahlung abgeschlossen ist, benachrichtigt der WeChat-Server den Händlerserver über das Zahlungsergebnis und der Händlerserver sendet nach Bearbeitung der Bestellung eine Antwort an den WeChat-Server.

3.PHP-Implementierungsmethode

Das Folgende ist die WeChat-Applet-Zahlungsimplementierungsmethode basierend auf PHP:

3.1 Händlerserverbestellungen

Nachdem der Händlerserver die Bestellanfrage des Benutzers erhalten hat, muss er eine Vorauszahlungsbestellung generieren und die Vorauszahlungsbestellung senden Informationen Rückkehr zum Applet. Das Folgende ist die PHP-Code-Implementierung zum Aufgeben einer Bestellung:

<?php
public function unifiedOrder($data)
{
    $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
    $data['appid'] = $this->appId;
    $data['mch_id'] = $this->mchId;
    $data['nonce_str'] = $this->getNonceStr();
    $data['notify_url'] = $this->notifyUrl;
    $data['trade_type'] = 'JSAPI';
    $data['openid'] = $openid;
    $data['spbill_create_ip'] = $_SERVER['REMOTE_ADDR'];
    $data['sign'] = $this->sign($data);

    $xml = $this->arrayToXml($data);
    $response = $this->postXmlCurl($xml, $url);
    $result = $this->xmlToArray($response);
    return $result;
}

3.2 Das Applet ruft die Zahlung auf.

Nachdem das Applet die Prepaid-Bestellung erhalten hat, muss es die WeChat-Zahlungs-API zur Zahlung aufrufen. Das Folgende ist die PHP-Code-Implementierung des Zahlungsaufrufs:

<?php
public function getPayParams($prepayId)
{
    $data['appId'] = $this->appId;
    $data['timeStamp'] = time();
    $data['nonceStr'] = $this->getNonceStr();
    $data['package'] = 'prepay_id=' . $prepayId;
    $data['signType'] = 'MD5';
    $data['paySign'] = $this->sign($data);

    return $data;
}

3.3 Benachrichtigung über das Zahlungsergebnis

Nachdem die WeChat-Zahlung abgeschlossen ist, benachrichtigt der WeChat-Server den Händlerserver über das Zahlungsergebnis. Das Folgende ist die PHP-Code-Implementierung der Zahlungsergebnisbenachrichtigung:

<?php
public function notify()
{
    $xml = file_get_contents("php://input");
    $data = $this->xmlToArray($xml);

    if ($this->checkSign($data)) {
        //处理支付结果
        $orderNo = $data['out_trade_no'];
        $transactionId = $data['transaction_id'];
        //返回成功信息
        return $this->arrayToXml(['return_code' => 'SUCCESS', 'return_msg' => 'OK']);
    } else {
        return $this->arrayToXml(['return_code' => 'FAIL', 'return_msg' => '签名验证失败']);
    }
}

4. Durch die Implementierung der oben genannten Schritte können wir problemlos auf die Zahlungsfunktion des WeChat-Miniprogramms zugreifen und eine bequemere Zahlungsmethode für Benutzer des Miniprogramms bereitstellen. Dabei ist zu beachten, dass die Sicherheit und Richtigkeit der Daten im Zahlungsvorgang gewährleistet sein muss und mögliche Zahlungsrisiken vermieden werden müssen.

Das obige ist der detaillierte Inhalt vonPHP-Implementierungsmethode im Zusammenhang mit der Bezahlung des WeChat-Miniprogramms. 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