Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierungshandbuch für die WeChat-Zahlungsfunktion für die Entwicklung von WeChat-Miniprogrammen mit EasyWeChat und PHP

Implementierungshandbuch für die WeChat-Zahlungsfunktion für die Entwicklung von WeChat-Miniprogrammen mit EasyWeChat und PHP

WBOY
WBOYOriginal
2023-07-18 15:12:232492Durchsuche

Anleitung zur Implementierung der WeChat-Zahlungsfunktion mit EasyWeChat und PHP zur Entwicklung von WeChat-Miniprogrammen

Im aktuellen Zeitalter des mobilen Internets ist die WeChat-Zahlung zu einer sehr beliebten Zahlungsmethode geworden. Für Entwickler, die WeChat-Miniprogramme entwickeln, ist die Implementierung der WeChat-Zahlungsfunktion ein sehr wichtiger Teil, der den Miniprogrammen einen besseren Geschäftswert bringen kann. In diesem Leitfaden erfahren Sie, wie Sie mit EasyWeChat und PHP die WeChat-Zahlungsfunktion des WeChat-Applets entwickeln.

1. Lernen Sie EasyWeChat kennen

EasyWeChat ist ein inoffizielles Open-Source-Projekt, das auf der öffentlichen WeChat-Plattform basiert. Es bietet ein einfaches und benutzerfreundliches PHP-SDK, das problemlos mit öffentlichen WeChat-Konten interagieren kann. Es bietet eine Reihe von Schnittstellen, darunter Benutzerauthentifizierung, Nachrichtenverwaltung, Vorlagennachrichten, Benutzertags usw. Gleichzeitig unterstützt EasyWeChat auch die WeChat-Zahlungsfunktion.

2. Beantragen Sie die WeChat-Zahlung

Bevor Sie die WeChat-Zahlung nutzen, müssen Sie zunächst die Bindung eines Händlerkontos auf der WeChat-Zahlungsplattform beantragen. Nach erfolgreicher Beantragung erhalten Sie eine Händlernummer und zugehörige Schlüssel. Diese Informationen werden für nachfolgende Zahlungsschnittstellenaufrufe verwendet.

3. Installieren Sie EasyWeChat

Bevor Sie mit der Entwicklung beginnen, müssen Sie zunächst EasyWeChat in Ihrem Projekt installieren. Es kann über Composer installiert werden, öffnen Sie die Befehlszeile, geben Sie das Stammverzeichnis des Projekts ein und führen Sie den folgenden Befehl aus:

composer require overtrue/wechat

Nach Abschluss der Installation führen Sie EasyWeChat in das Projekt ein:

use EasyWeChatFactory;

4. Konfigurieren Sie zahlungsbezogene Parameter

Beginnen Sie mit der Nutzung von EasyWeChat für die Zahlung. Vor der Funktionsentwicklung müssen zunächst die Zahlungsparameter konfiguriert werden. Angenommen, wir haben ein config-Verzeichnis im Stammverzeichnis des Projekts und erstellen in diesem Verzeichnis eine wechat.php-Datei: config目录,并在该目录下创建一个wechat.php文件:

return [
    'mini_program' => [
        'app_id' => 'your-mini-program-app-id',
        'mch_id' => 'your-merchant-id',
        'key' => 'your-merchant-key',
        'cert_path' => 'your-cert-path',
        'key_path' => 'your-key-path',
        'notify_url' => 'your-notify-url',
    ],
];

其中,app_id是微信小程序的App ID,mch_id是商户号,key是商户密钥,cert_pathkey_path是商户证书的路径,notify_url是支付结果通知的URL。

五、创建支付订单

使用EasyWeChat可以很方便地创建微信支付订单。下面是一个示例代码:

$payment = Factory::payment(config('wechat.mini_program'));

$result = $payment->order->unify([
    'body' => '商品描述',
    'out_trade_no' => '商户订单号',
    'total_fee' => '订单总金额',
    'spbill_create_ip' => request()->ip(),
    'trade_type' => 'JSAPI',
    'openid' => '用户的openid',
]);

if ($result['return_code'] === 'SUCCESS' && $result['result_code'] === 'SUCCESS') {
    $prepayId = $result['prepay_id'];

    // JSAPI支付需要的参数
    $config = $payment->jssdk->sdkConfig($prepayId);

    // 将$config返回给前端,用于调起微信支付
} else {
    // 创建订单失败的处理逻辑
}

在上述代码中,order->unify方法用于创建订单,其中body是商品描述,out_trade_no是商户订单号,total_fee是订单总金额,spbill_create_ip是用户的IP地址,trade_type是支付方式,openid是用户的openid。如果订单创建成功,则可以获取到prepay_id,将其用于后续的支付操作。

六、调起微信支付

在前端小程序中调起微信支付非常简单,只需要在需要进行支付的地方调用wx.requestPayment方法,传入支付所需的参数即可。以下是一个示例代码:

wx.requestPayment({
  'timeStamp': '时间戳',
  'nonceStr': '随机字符串',
  'package': 'prepay_id=prepay_id',
  'signType': 'MD5',
  'paySign': '签名',
  'success': function (res) {
     // 支付成功的处理逻辑
  },
  'fail': function (res) {
     // 支付失败的处理逻辑
  }
})

在上述代码中,timeStamp是时间戳,nonceStr是随机字符串,packageprepay_id=prepay_idsignType是签名类型,paySign是签名。

七、处理支付结果通知

在用户完成支付后,微信会通过异步通知的方式将支付结果通知给开发者服务器。开发者需要保证服务器能够正常接收到支付结果通知。以下是一个处理支付结果通知的示例代码:

$payment = Factory::payment(config('wechat.mini_program'));

$response = $payment->handlePaidNotify(function ($notify, $successful) {
    // 处理支付结果通知的逻辑

    return true;
});

return $response;

在上述代码中,handlePaidNotify方法用于处理支付结果通知,其中$notify参数是微信支付通知的内容,$successfulrrreee

Darunter app_id code> ist die App-ID des WeChat-Applets, <code>mch_id ist die Händlernummer, key ist der Händlerschlüssel, cert_path und key_path code> ist der Pfad zum Händlerzertifikat und notify_url ist die URL der Zahlungsergebnisbenachrichtigung.

5. Erstellen Sie einen Zahlungsauftrag🎜🎜Mit EasyWeChat können Sie ganz einfach einen WeChat-Zahlungsauftrag erstellen. Hier ist ein Beispielcode: 🎜rrreee🎜Im obigen Code wird die Methode order->unify verwendet, um eine Bestellung zu erstellen, wobei body die Produktbeschreibung und out_trade_no ist die Bestellnummer des Händlers, total_fee ist der Gesamtbestellbetrag, spbill_create_ip ist die IP-Adresse des Benutzers, trade_type ist die Zahlungsmethode, openid ist die openid des Benutzers. Wenn die Bestellung erfolgreich erstellt wurde, können Sie prepay_id erhalten und für nachfolgende Zahlungsvorgänge verwenden. 🎜🎜6. WeChat Payment aktivieren🎜🎜Es ist sehr einfach, WeChat Payment im Frontend-Applet zu aktivieren. Sie müssen nur die Methode wx.requestPayment aufrufen, wo die Zahlung erforderlich ist, und die Parameter übergeben zur Bezahlung erforderlich. Das Folgende ist ein Beispielcode: 🎜rrreee🎜Im obigen Code ist timeStamp der Zeitstempel, nonceStr ist eine zufällige Zeichenfolge und package ist prepay_id=prepay_id, signType ist der Signaturtyp und paySign ist die Signatur. 🎜🎜7. Zahlungsergebnisbenachrichtigungen werden verarbeitet🎜🎜Nachdem der Benutzer die Zahlung abgeschlossen hat, benachrichtigt WeChat den Entwicklerserver durch eine asynchrone Benachrichtigung über die Zahlungsergebnisse. Entwickler müssen sicherstellen, dass der Server normalerweise Benachrichtigungen über Zahlungsergebnisse empfangen kann. Das Folgende ist ein Beispielcode für die Verarbeitung von Zahlungsergebnisbenachrichtigungen: 🎜rrreee🎜Im obigen Code wird die Methode handlePaidNotify zum Verarbeiten von Zahlungsergebnisbenachrichtigungen verwendet, wobei der Parameter $notify verwendet wird ist die WeChat-Zahlungsbenachrichtigung. Der Parameter $successful gibt an, ob die Zahlung erfolgreich war. Entwickler müssen in dieser Rückruffunktion ihre eigene Geschäftslogik implementieren, z. B. die Aktualisierung des Bestellstatus usw. 🎜🎜Durch die oben genannten Schritte können wir EasyWeChat und PHP verwenden, um die WeChat-Zahlungsfunktion des WeChat-Applets zu entwickeln. Ich hoffe, dass dieser Leitfaden Entwicklern dabei helfen kann, die WeChat-Zahlungsfunktion erfolgreich zu implementieren. 🎜

Das obige ist der detaillierte Inhalt vonImplementierungshandbuch für die WeChat-Zahlungsfunktion für die Entwicklung von WeChat-Miniprogrammen mit EasyWeChat und PHP. 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