Guide pour implémenter la fonction de paiement WeChat en utilisant EasyWeChat et PHP pour développer des mini-programmes WeChat
À l'ère actuelle de l'Internet mobile, le paiement WeChat est devenu un moyen de paiement très populaire. Pour les développeurs qui développent des mini-programmes WeChat, la mise en œuvre de la fonction de paiement WeChat est un élément très important. Le paiement WeChat peut apporter une meilleure valeur commerciale aux mini-programmes. Ce guide présentera comment utiliser EasyWeChat et PHP pour développer la fonction de paiement WeChat de l'applet WeChat.
1. Apprenez à connaître EasyWeChat
EasyWeChat est un projet open source non officiel basé sur la plateforme publique WeChat. Il fournit un SDK PHP simple et facile à utiliser qui peut facilement interagir avec les comptes publics WeChat. Il fournit une série d'interfaces, notamment l'authentification des utilisateurs, la gestion des messages, les modèles de messages, les balises utilisateur, etc. Dans le même temps, EasyWeChat prend également en charge la fonction de paiement WeChat.
2. Demander le paiement WeChat
Avant d'utiliser le paiement WeChat, vous devez d'abord demander la liaison d'un compte marchand sur la plateforme de paiement WeChat. Une fois la demande réussie, vous obtiendrez un numéro de commerçant et les clés associées. Ces informations seront utilisées pour les appels ultérieurs de l'interface de paiement.
3. Installez EasyWeChat
Avant de commencer le développement, vous devez d'abord installer EasyWeChat dans votre projet. Il peut être installé via Composer, ouvrez la ligne de commande et entrez dans le répertoire racine du projet, exécutez la commande suivante :
composer require overtrue/wechat
Une fois l'installation terminée, introduisez EasyWeChat dans le projet :
use EasyWeChatFactory;
4. Configurez les paramètres liés au paiement
Commencez à utiliser EasyWeChat pour le paiement Avant le développement de la fonction, les paramètres de paiement doivent être configurés. Supposons que nous ayons un répertoire config
dans le répertoire racine du projet et que nous créions un fichier wechat.php
dans ce répertoire : 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_path
和key_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
是随机字符串,package
是prepay_id=prepay_id
,signType
是签名类型,paySign
是签名。
七、处理支付结果通知
在用户完成支付后,微信会通过异步通知的方式将支付结果通知给开发者服务器。开发者需要保证服务器能够正常接收到支付结果通知。以下是一个处理支付结果通知的示例代码:
$payment = Factory::payment(config('wechat.mini_program')); $response = $payment->handlePaidNotify(function ($notify, $successful) { // 处理支付结果通知的逻辑 return true; }); return $response;
在上述代码中,handlePaidNotify
方法用于处理支付结果通知,其中$notify
参数是微信支付通知的内容,$successful
rrreee
app_id code> est l'ID d'application de l'applet WeChat, <code>mch_id
est le numéro du commerçant, key
est la clé du commerçant, cert_path
et key_path code> est le chemin d'accès au certificat du commerçant et notify_url
est l'URL de la notification du résultat du paiement. 5. Créer un ordre de paiement🎜🎜En utilisant EasyWeChat, vous pouvez facilement créer un ordre de paiement WeChat. Voici un exemple de code : 🎜rrreee🎜Dans le code ci-dessus, la méthode order->unify
est utilisée pour créer une commande, où body
est la description du produit, out_trade_no est le numéro de commande du commerçant, total_fee
est le montant total de la commande, spbill_create_ip
est l'adresse IP de l'utilisateur, trade_type
est le mode de paiement, openid
est l'openid de l'utilisateur. Si la commande est créée avec succès, vous pouvez obtenir le prepay_id
et l'utiliser pour les opérations de paiement ultérieures. 🎜🎜6. Activation du paiement WeChat🎜🎜Il est très simple d'activer le paiement WeChat dans l'applet front-end. Il vous suffit d'appeler la méthode wx.requestPayment
où le paiement est requis et de transmettre les paramètres. requis pour le paiement. Voici un exemple de code : 🎜rrreee🎜Dans le code ci-dessus, timeStamp
est l'horodatage, nonceStr
est une chaîne aléatoire et package
est prepay_id=prepay_id
, signType
est le type de signature et paySign
est la signature. 🎜🎜7. Traitement des notifications de résultats de paiement🎜🎜Une fois le paiement effectué par l'utilisateur, WeChat informera le serveur du développeur des résultats de paiement via une notification asynchrone. Les développeurs doivent s'assurer que le serveur peut normalement recevoir des notifications de résultat de paiement. Voici un exemple de code pour traiter les notifications de résultat de paiement : 🎜rrreee🎜Dans le code ci-dessus, la méthode handlePaidNotify
est utilisée pour traiter les notifications de résultat de paiement, où le paramètre $notify
est la notification de paiement WeChat. Le paramètre $successful
indique si le paiement a réussi. Les développeurs doivent implémenter leur propre logique métier dans cette fonction de rappel, comme la mise à jour du statut des commandes, etc. 🎜🎜Grâce aux étapes ci-dessus, nous pouvons utiliser EasyWeChat et PHP pour développer la fonction de paiement WeChat de l'applet WeChat. J'espère que ce guide pourra aider les développeurs à mettre en œuvre avec succès les fonctions de paiement WeChat. 🎜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!