Dans cet article, nous partageons principalement avec vous des exemples de développement Laravel de paiement WeChat. Le paiement WeChat est très populaire maintenant, en particulier sur les téléphones mobiles. Nous n'avons besoin que d'opérations simples pour effectuer le paiement.
1. Installez les packages de dépendances
Exécutez la commande suivante dans le répertoire racine du projet pour installer les dépendances :
composer require overtrue/laravel-wechat 2.1.*
Une fois l'installation terminée, enregistrez le fournisseur de services. dans config/app.php Auteur :
OvertrueLaravelWechatServiceProvider::class
Si vous souhaitez transmettre la façade WeChat dans le code, vous pouvez l'ajouter au tableau d'alias dans config/app.php :
'Wechat' => Overtrue\LaravelWechat\Facade::class
2, Configurer les paramètres du compte public WeChat
Après avoir terminé les opérations ci-dessus, exécutez la commande suivante pour publier le fichier de configuration dans le répertoire de configuration :
php artisan vendor:publish
Après l'opération réussie, modifiez le fichier 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') // 只有加密模式需要 ];
Remplissez les informations pertinentes de votre compte public WeChat dans la configuration correspondante. A noter que si vous souhaitez utiliser la fonction de paiement WeChat, vous avez besoin d'un. compte public certifié, et le compte de test actuel de la plateforme publique WeChat ne prend pas en charge l'interface de paiement.
Avant d'utiliser le paiement WeChat, vous devez vous rendre sur la plateforme publique WeChat pour configurer le répertoire d'autorisation, le compte test et d'autres informations. Pour les documents de développement des paiements WeChat, veuillez vous référer à : https://pay.weixin.qq.com/wiki/doc/api/index.html
Exemples d'utilisation
Remarque : Laravel. 5 est activé par défaut Sans le middleware CSRF, étant donné que le message WeChat est POSTé, il déclenchera la vérification CSRF et empêchera une réponse correcte au message. Par conséquent, l'URL spécifiée peut être exclue de la vérification CSRF. Pour plus de détails, veuillez vous référer à : Comment exclure les URL spécifiées du CSRF dans Laravel.
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>
Notification de paiement
<?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. Utilisation dans Lumen
De plus, laravel-wechat prend également en charge Lumen. Après avoir utilisé Composer pour installer laravel-wechat, vous devez ajouter cette ligne de code autour de la ligne 82 dans bootstrap/app.php :
$app->register(OvertrueLaravelWechatServiceProvider::class);
En même temps, configurez les options suivantes dans ENV :
WECHAT_USE_ALIAS=false WECHAT_APPID=xxx WECHAT_SECRET=xxx WECHAT_TOKEN=xxx WECHAT_ENCODING_KEY=xxx
Si vous avez l'habitude d'utiliser config/wechat.php pour configurer, n'oubliez pas d'ajouter bootstrap/app.php après la ligne 19 :
$app->configure('wechat');
Bien sûr, en plus, laravel-wechat fournit également davantage de support pour le SDK WeChat.
Recommandations associées :
Exemple d'interface PHP Alipay cours approfondi
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!