Comment intégrer le paiement WeChat en utilisant PHP et OAuth
Introduction :
Avec la popularité du paiement mobile, le paiement WeChat est devenu le mode de paiement préféré de nombreuses personnes. L'intégration de WeChat Pay dans un site Web ou une application peut offrir aux utilisateurs une expérience de paiement pratique. Cet article explique comment utiliser PHP et OAuth pour l'intégration des paiements WeChat et fournit des exemples de code pertinents.
1. Demander WeChat Pay
Avant d'utiliser WeChat Pay, vous devez d'abord demander un compte marchand WeChat Pay et les clés associées. Pour le processus de candidature spécifique, veuillez vous référer aux documents officiels de WeChat Pay.
2. Sélection de la bibliothèque PHP OAuth
OAuth est un standard ouvert d'autorisation, qui permet aux utilisateurs d'autoriser des applications tierces à accéder à leurs informations. Dans WeChat Pay, OAuth est utilisé dans le processus de connexion et de paiement avec autorisation de l'utilisateur. En PHP, il existe de nombreuses bibliothèques OAuth open source parmi lesquelles choisir, telles que OAuth1 et OAuth2.
3. Installez et configurez la bibliothèque OAuth
composer require thephpleague/oauth2-client
<?php class Config { public static $wechatPayConfig = [ 'clientId' => 'YOUR_CLIENT_ID', 'clientSecret' => 'YOUR_CLIENT_SECRET', 'redirectUri' => 'YOUR_REDIRECT_URI', 'wechatPayApiUrl' => 'https://api.mch.weixin.qq.com/pay/unifiedorder', 'wechatPayAppId' => 'YOUR_APP_ID', 'wechatPayMchId' => 'YOUR_MCH_ID', 'wechatPayApiKey' => 'YOUR_API_KEY' ]; } ?>
4. Utilisez OAuth pour l'intégration du paiement WeChat
<?php require 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; $provider = new GenericProvider([ 'clientId' => Config::$wechatPayConfig['clientId'], 'clientSecret' => Config::$wechatPayConfig['clientSecret'], 'redirectUri' => Config::$wechatPayConfig['redirectUri'], 'urlAuthorize' => 'https://open.weixin.qq.com/connect/oauth2/authorize', 'urlAccessToken' => 'https://api.weixin.qq.com/sns/oauth2/access_token', 'urlResourceOwnerDetails' => 'https://api.weixin.qq.com/sns/userinfo' ]); // 获取授权码 if (!isset($_GET['code'])) { $authorizationUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authorizationUrl); exit(); } try { $accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); $resourceOwner = $provider->getResourceOwner($accessToken); $openid = $resourceOwner->getValues()['openid']; // TODO: 将openid保存到数据库中 } catch (Exception $e) { // 错误处理 } ?>
<?php require 'vendor/autoload.php'; $wechatPay = new WechatPay(Config::$wechatPayConfig); $prepayInfo = $wechatPay->unifiedOrder([ 'body' => '支付测试', 'out_trade_no' => time(), 'total_fee' => '1', 'spbill_create_ip' => $_SERVER['REMOTE_ADDR'], 'notify_url' => 'http://www.example.com/notify.php', 'trade_type' => 'JSAPI', 'openid' => $openid ]); $prepayParams = $wechatPay->getJSSDKParams($prepayInfo['prepay_id']); // 将$prepayParams传递给前端进行支付 ?>
notify_url
spécifié pour notifier le résultat du paiement. Ceci peut être réalisé grâce à l'exemple de code suivant : <?php require 'vendor/autoload.php'; use WechatPayNotify; $notify = new Notify(Config::$wechatPayConfig); $notifyResult = $notify->handleNotify(); // 处理支付结果通知 if ($notifyResult) { // TODO: 更新数据库中的订单状态 echo 'success'; // 返回给微信服务器,表示已成功处理通知 } else { // TODO: 删除数据库中的订单,或者进行其他处理 echo 'fail'; } ?>
Résumé :
Grâce aux étapes ci-dessus, nous pouvons implémenter la fonction de paiement WeChat basée sur PHP et OAuth. Tout d'abord, implémentez la connexion par autorisation utilisateur via OAuth et obtenez l'openid de l'utilisateur. Ensuite, utilisez openid et les paramètres associés pour effectuer une demande de paiement. Enfin, dans la notification du résultat du paiement, le résultat du paiement est traité et le statut de la commande associé est mis à jour. Grâce à cette méthode, nous pouvons facilement intégrer le paiement WeChat dans des sites Web ou des applications.
Ce qui précède est l'exemple de code de cet article. J'espère qu'il sera utile à tout le monde lors de l'intégration du paiement WeChat à l'aide de PHP et OAuth.
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!