Maison  >  Article  >  développement back-end  >  Guide de mise en œuvre de la fonction de paiement WeChat pour le développement de mini-programmes WeChat avec EasyWeChat et PHP

Guide de mise en œuvre de la fonction de paiement WeChat pour le développement de mini-programmes WeChat avec EasyWeChat et PHP

WBOY
WBOYoriginal
2023-07-18 15:12:232443parcourir

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_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

Parmi eux, 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn