Miniprogramme nutzen die Miniprogramm-Cloud zur Implementierung von WeChat-Zahlungsfunktionen

Miniprogramme nutzen die Miniprogramm-Cloud zur Implementierung von WeChat-Zahlungsfunktionen

1. WeChat Pay öffnen

1.1 Partner-Händlernummer

\微信公眾號平臺\功能\微信支付\商戶號管理\關聯商戶號

Bildbeschreibung hier einfügen

1.2 Händlernummer hinzufügen

\云開發平臺\設置\其他設置\微信支付配置\添加商戶號

Bildbeschreibung hier einfügen

1.3 Administratorberechtigung

1.2 Klicken Sie auf diesem Bild auf Autorisieren. Im WeChat des Administrators wird eine Eingabeaufforderung angezeigt. Klicken Sie einfach, um die Autorisierung zu bestätigen.

Andernfalls erscheint bei der Verwendung eine Fehlermeldung, die darauf hinweist sub_mch_id與sub_appid不匹配!

2. Entwicklung von Cloud-Funktionen

2.1 Neue Cloud-Funktion erstellen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

2.2 Cloud-Funktionscode

\pay\index.js

const cloud = erfordern('wx-server-sdk')
cloud.init({
  Umgebung: cloud.DYNAMIC_CURRENT_ENV
})

exports.main = async (Ereignis, Kontext) => {    
const res = warte auf cloud.cloudPay.unifiedOrder({
    "body" : Ereignis.body,
    "outTradeNo" : Ereignis.outTradeNo,
    "spbillCreateIp" : "127.0.0.1",
    "subMchId" : "0000000000", //Hinweis: Obwohl der Schlüssel die Unterhändler-ID ist, handelt es sich tatsächlich um die normale Händler-ID
    "totalFee" : parseInt(event.totalFee), //Zweite Falle: Beachten Sie, dass es eine Zahl sein muss. Wenn es keine Zahl ist, wird ein Fehler gemeldet: unifiedOrder:fail wx api error: -202
    "envId": "ooo-xxxxxxxxxxxxxxxx", //Dies ist die Cloud-Umgebungs-ID, zu der die Rückruffunktion gehört
    "functionName": "payCallBack", //Dies ist der Name der Rückruffunktion"nonceStr":event.nonceStr, //Die dritte Falle: Der entsprechende Cloud-Funktionscode im offiziellen Dokument hat weder nonceStr noch tradeType. Beim Testen wird ein Fehler gemeldet, dass nonceStr nicht existiert. Ich habe das Dokument durchgesehen und festgestellt, dass dies ein erforderliches Element ist. Nachdem Sie es direkt eingefügt haben, müssen Sie diese beiden Parameter hinzufügen"tradeType":"JSAPI"
  })
  Rückgabewert
}

2.3 Hochladen und Bereitstellen von Cloud-Funktionen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

3. Mini-Programmaufruf

3.1 Einheitliche Bestellung

  • Die nach einer Bestellung über WeChat erhaltenen Daten sollten zunächst in der Datenbank gespeichert und als Backup aufbewahrt werden.
  • Rufen Sie dann die WeChat-Zahlungsoberfläche auf
//Cloud-Funktion aufrufen, WeChat vereinheitlichte Bestellung cloudPay(){
    var _this = dies
    dies.setData({
      Text: „Rechnungszahlung-xxxxx“,
      outTradeNo: this.data.id+"-"+util.uuid(16),
      totalFee: this.data.totalCost*100 //Zahlungseinheit: Cent})
    app.showLoading(true)
    wx.cloud.callFunktion({
      Name: "Bezahlen",
      Daten: {
        Körper: _this.data.body,
        outTradeNo: _this.data.outTradeNo,
        Gesamtgebühr: _this.data.totalFee,
        nonceStr:util.uuid(32)//Rufen Sie Ihre eigene UUID-Funktion auf},
      Erfolg(res) {
        // Fehlercode: 0
        // Fehlermeldung: "cloudPay.unifiedOrder:ok"
        // Rückgabewert: "FEHLER"
        // returnMsg: "total_fee ist leer."
        console.log("Übermittlung erfolgreich", res.result)
        if(res.result.returnCode!="ERFOLGREICH"){
          app.showToast(res.result.returnMsg)
          zurückkehren
        }
        _this.unifiedOrder(result.ergebnis)
        // _this.requestPayment(result.ergebnis)
      },
      Fehler(res) {
        console.log("Übermittlung fehlgeschlagen", res)
      }
    })
  },

3.2 WeChat-Zahlungsschnittstelle öffnen

  //Offizielle Standardzahlmethode, rufe die Zahlungsschnittstelle auf requestPayment(payData) {
    var _this = dies;
    const payment = payData.payment //Beachten Sie, dass das Ergebnis der vorherigen Funktion die hier zu verwendenden Parameter direkt integriert. Sie können es direkt erweitern und wx.requestPayment({ verwenden.
      ...Zahlung, //...ist die Syntax zum Erweitern von Variablen success(res) {
        console.log("Zahlung erfolgreich", res)
        _this.paySuccess()
      },
      Fehler(res) {
        console.log("Zahlung fehlgeschlagen", res)
      }
    })
  },

3.2 Rückruf bei erfolgreicher Zahlung

  • Es wird nicht empfohlen, den Zahlungserfolgsvorgang direkt in der Erfolgsrückruffunktion von requestPayment auszuführen
  • Es ist besser, eine andere Cloud-Funktion payCallBack zu erstellen
  • Diese Cloud-Funktion payCallBack ruft die Schnittstelle unseres selbstgebauten Servers auf, um den Zahlungserfolgsvorgang auszuführen
  • Dabei geht es darum, wie die http-Schnittstelle in der Cloud-Funktion aufgerufen wird. Ich werde es später erklären.

Damit ist dieser Artikel über die Verwendung der WeChat-Zahlungsfunktion in einem Miniprogramm über die Miniprogramm-Cloud abgeschlossen. Weitere Informationen zur WeChat-Zahlung in einem Miniprogramm finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So rufen Sie die WeChat-Zahlung aus einem Miniprogramm auf
  • So implementieren Sie ein WeChat-Applet, das die WeChat-Zahlungsschnittstelle aufruft
  • Ein einfaches Beispiel für eine WeChat-Zahlung mit WeChat-Applet und PHP
  • WeChat-Applet WeChat-Zahlungszugang – Entwicklungsbeispiel – detaillierte Erläuterung
  • Schritte des WeChat-Miniprogramms zur WeChat-Zahlung
  • WeChat Mini-Programme - Detaillierte Erklärung der WeChat-Anmeldung, WeChat-Zahlung und Vorlagennachrichten

<<:  So zeigen Sie die Zeitzone in MySQL an und ändern sie

>>:  Verwenden Sie den Linux-Befehl „seq“, um eine Zahlenfolge zu generieren (empfohlen)

Artikel empfehlen

Detaillierte Erläuterung der Destrukturierungszuweisung von JS ES6-Variablen

Inhaltsverzeichnis 1. Was ist Dekonstruktion? 2. ...

Integrationspraxis des Vue+Element-Hintergrundverwaltungsframeworks

Inhaltsverzeichnis Vue+ElementUI-Hintergrundverwa...

Beispiel für die Implementierung eines globalen Wasserzeichens in Vue

Inhaltsverzeichnis 1. Erstellen Sie eine Wasserze...

MySQL-Export ganzer oder einzelner Tabellendaten

Exportieren einer einzelnen Tabelle mysqldump -u ...

Detaillierte Erklärung der allgemeinen For-Schleife in JavaScript-Anweisungen

Es gibt viele Schleifenanweisungen in JavaScript,...

Tutorial zur Installation und Konfiguration von msmtp und mutt für Raspberry Pi

1. Installieren Sie mutt sudo apt-get install mut...

Analyse des Implementierungsprinzips von Vue-Anweisungen

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

Beispiel für die Installation und Bereitstellung von Docker unter Linux

Nachdem Sie den folgenden Artikel gelesen haben, ...

So setzen Sie das Root-Passwort in CentOS7 zurück

Beim Verschieben von Bausteinen treten verschiede...

Implementierung der privaten Docker-Bibliothek

Die Installation und Bereitstellung eines private...