In diesem Artikel teilen wir Ihnen hauptsächlich die Entwicklungsbeispiele für die WeChat-Zahlung mit, die derzeit sehr beliebt ist, insbesondere auf Mobiltelefonen. Ich hoffe, wir können allen helfen.
1. Abhängigkeitspakete installieren
Führen Sie den folgenden Befehl im Projektstammverzeichnis aus, um die Abhängigkeiten zu installieren:
composer require overtrue/laravel-wechat 2.1.*
Registrieren Sie nach Abschluss der Installation den Dienstanbieter in config/app.php Autor:
OvertrueLaravelWechatServiceProvider::class
Wenn Sie die WeChat-Fassade im Code übergeben möchten, können Sie sie dem Aliases-Array in config/app.php hinzufügen:
'Wechat' => Overtrue\LaravelWechat\Facade::class
2, Konfigurieren Sie die Einstellungen des öffentlichen WeChat-Kontos
Führen Sie nach Abschluss der oben genannten Vorgänge den folgenden Befehl aus, um die Konfigurationsdatei im Konfigurationsverzeichnis zu veröffentlichen:
php artisan vendor:publish
Nach erfolgreichem Vorgang bearbeiten die Datei config/wechat.php:
<?php return [ 'use_alias' => env('WECHAT_USE_ALIAS', false), 'app_id' => env('WECHAT_APPID', 'Your AppId'), // 必填 'secret' => env('WECHAT_SECRET', 'Your Secret'), // 必填 'token' => env('WECHAT_TOKEN', 'Your Token'), // 必填 'encoding_key' => env('WECHAT_ENCODING_KEY', 'Your Encoding AES Key') // 只有加密模式需要 ];
Geben Sie die relevanten Informationen Ihres öffentlichen WeChat-Kontos in die entsprechende Konfiguration ein. Beachten Sie, dass Sie eine benötigen, wenn Sie die WeChat-Zahlungsfunktion nutzen möchten zertifiziertes öffentliches Konto, und das aktuelle Testkonto der öffentlichen WeChat-Plattform unterstützt die Zahlungsschnittstelle nicht.
Bevor Sie die WeChat-Zahlung verwenden, müssen Sie zur öffentlichen WeChat-Plattform gehen, um das Autorisierungsverzeichnis, das Testkonto und andere Informationen zu konfigurieren. Dokumente zur WeChat-Zahlungsentwicklung finden Sie unter: https://pay.weixin.qq.com/wiki/doc/api/index.html
3 Verwendungsbeispiele
Hinweis: Laravel 5 ist standardmäßig aktiviert. Ohne die CSRF-Middleware löst die WeChat-Nachricht, da sie gepostet wird, die CSRF-Prüfung aus und führt dazu, dass nicht korrekt auf die Nachricht reagiert werden kann, sodass die angegebene URL von der CSRF-Überprüfung ausgeschlossen werden kann. Einzelheiten finden Sie unter: So schließen Sie bestimmte URLs von CSRF in Laravel aus.
PHP
<?php use Overtrue\Wechat\Payment; use Overtrue\Wechat\Payment\Order; use Overtrue\Wechat\Payment\Business; use Overtrue\Wechat\Payment\UnifiedOrder; /** * 第 1 步:定义商户 */ $business = new Business( APP_ID, APP_KEY, MCH_ID, MCH_KEY ); /** * 第 2 步:定义订单 */ $order = new Order(); $order->body = 'test body'; $order->out_trade_no = md5(uniqid().microtime()); $order->total_fee = '1'; // 单位为 “分”, 字符串类型 $order->openid = OPEN_ID; $order->notify_url = 'http://xxx.com/wechat/payment/notify'; /** * 第 3 步:统一下单 */ $unifiedOrder = new UnifiedOrder($business, $order); /** * 第 4 步:生成支付配置文件 */ $payment = new Payment($unifiedOrder); Javascript var WXPayment = function() { if( typeof WeixinJSBridge === 'undefined' ) { alert('请在微信在打开页面!'); return false; } WeixinJSBridge.invoke( 'getBrandWCPayRequest', <?php echo $payment->getConfig(); ?>, function(res) { switch(res.err_msg) { case 'get_brand_wcpay_request:cancel': alert('用户取消支付!'); break; case 'get_brand_wcpay_request:fail': alert('支付失败!(' res.err_desc ')'); break; case 'get_brand_wcpay_request:ok': alert('支付成功!'); break; default: alert(JSON.stringify(res)); break; } } ); } HTML <button type="button" onclick="WXPayment()"> 支付 ¥<?php echo ($order->total_fee / 100); ?> 元 </button>
Zahlungsbenachrichtigung
<?php use Overtrue\Wechat\Payment\Notify; $notify = new Notify( APP_ID, APP_KEY, MCH_ID, MCH_KEY ); $transaction = $notify->verify(); if (!$transaction) { $notify->reply('FAIL', 'verify transaction error'); } // var_dump($transaction); echo $notify->reply();
4. Verwendung in Lumen
Darüber hinaus unterstützt laravel-wechat auch Lumen. Nachdem Sie Laravel-Wechat mit Composer installiert haben, müssen Sie diese Codezeile um Zeile 82 in bootstrap/app.php hinzufügen:
$app->register(OvertrueLaravelWechatServiceProvider::class);
Konfigurieren Sie gleichzeitig die folgenden Optionen in ENV:
WECHAT_USE_ALIAS=false WECHAT_APPID=xxx WECHAT_SECRET=xxx WECHAT_TOKEN=xxx WECHAT_ENCODING_KEY=xxx
Wenn Sie es gewohnt sind, config/wechat.php zum Konfigurieren zu verwenden, denken Sie bitte daran, nach Zeile 19 bootstrap/app.php hinzuzufügen:
$app->configure('wechat');
Darüber hinaus bietet laravel-wechat natürlich auch mehr WeChat SDK-Unterstützung.
Verwandte Empfehlungen:
Beispiel für eine PHP-Alipay-Schnittstelle, ausführlicher Vortrag
PHP implementiert die Reihenfolge der RSA-Signaturgenerierung mit Alipay als eine Beispielfunktion
Das obige ist der detaillierte Inhalt vonBeispiel für die WeChat-Zahlungsentwicklung von Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!