Avec le développement rapide de l'Internet mobile, le paiement électronique joue un rôle de plus en plus important dans la vie moderne. Alipay et WeChat Pay sont devenus l'un des principaux moyens de paiement électronique dans la société moderne. Par conséquent, afin que les applications Web puissent gérer les paiements Alipay et WeChat en douceur, cet article explique comment utiliser ThinkPHP 6 pour les opérations de paiement Alipay et WeChat.
1. Présentez les fichiers de bibliothèque pertinents
Avant d'utiliser ThinkPHP6 pour le paiement Alipay et WeChat, vous devez d'abord introduire les fichiers de bibliothèque pertinents. Je suppose ici que vous avez installé Composer, puis utilisez la commande suivante dans la console pour installer les fichiers de bibliothèque pertinents :
composer require alipay/easysdk
composer require wechatpay/wechatpay
composer require guzzlehttp/guzzle
Parmi eux, alipay/easysdk est le kit de développement Alipay, wechatpay/wechatpay est le SDK de la plateforme ouverte WeChat , guzzlehttp/guzzle Est une bibliothèque PHP permettant d'envoyer des requêtes HTTP à l'API.
2. Opération de paiement Alipay
Le processus principal du processus de paiement Alipay est :
use AlipayEasySDKFactory; class AlipayController extends Controller { public function index() { $config = [ 'app_id' => 'your-app-id', 'private_key' => 'your-private-key', 'public_key' => 'your-public-key', 'log' => [ 'file' => './alipay/easy.log', 'level' => 'debug', ], 'notify_url' => 'http://yourwebsite.com/notify', 'return_url' => 'http://yourwebsite.com/return' ]; $app = Factory::create('payment', $config); $order = [ 'out_trade_no' => date('YmdHis'), 'total_amount' => 0.01, 'subject' => 'test', ]; $url = $app->order->page($order, 'http://yourwebsite.com/return'); return $url; } }
Une fois le paiement effectué, Alipay enverra une requête POST au serveur du commerçant. La demande contient des informations de paiement et appelle le notify_url du commerçant. Dans le code, notify_url pointe vers une adresse du serveur du commerçant, offrant ainsi à ce dernier la possibilité de traiter les résultats de paiement.
3. Opération de paiement WeChat
Le processus principal du processus de paiement WeChat est :
Demander des informations sur la commande de prépaiement auprès du serveur WeChat Obtenez le prepay_id renvoyé par le serveur WeChat et générez la signature de la commande (veuillez notez que l'ordre de signature est en règle Pour appid, mch_id, nonce_str, prepay_id, trade_type, key);use WechatPayGuzzleMiddlewareUtilPemUtil; use WechatPayNotifyPaidNotify; use WechatPayOpenAPIV3PayAppPayClient; use WechatPayOpenAPIV3PayJsPayClient; class WechatController extends Controller { public function index() { $merchantId = 'your-mchid'; $merchantSerialNumber = 'your-serial'; $merchantPrivateKey = PemUtil::loadPrivateKey('./cert/apiclient_key.pem'); $wechatpayCertificate = PemUtil::loadCertificate('./cert/wechatpay_certificate.pem'); $apiV3Key = 'your-key'; $client = new JsPayClient( $merchantId, $merchantSerialNumber, $merchantPrivateKey, $wechatpayCertificate, $apiV3Key ); $params = [ 'body' => 'testbody', 'out_trade_no' => date('YmdHis'), 'app_id' => 'your-app-id', 'notify_url' => 'http://yourwebsite.com/wechat_notify', 'amount' => [ 'total' => 1, ], 'description' => 'test_description', ]; $result = $client->prepare($params); $prepayId = $result['prepay_id']; $appClient = new AppPayClient( $merchantId, $merchantSerialNumber, $merchantPrivateKey, $wechatpayCertificate, $apiV3Key ); $packageParams = [ 'prepay_id' => $prepayId, 'trade_type' => 'JSAPI', 'timeStamp' => strval(time()), 'nonceStr' => md5(bin2hex(openssl_random_pseudo_bytes(16))), ]; $packageParams['sign'] = $appClient->sign($packageParams); return json_encode($packageParams); } }
Une fois le paiement effectué, WeChat enverra une requête POST au serveur du commerçant. La demande contient des informations de paiement et appelle l'url notify_url du commerçant. Dans le code, notify_url pointe vers une adresse du serveur du commerçant, offrant ainsi à ce dernier la possibilité de traiter les résultats de paiement.
Pour résumer, cet article présente comment utiliser ThinkPHP6 pour les opérations de paiement Alipay et WeChat. Veuillez noter que cet article ne fournit qu'un exemple de base, vous devez traiter les résultats de paiement et les exceptions plus en détail. Si vous rencontrez des problèmes, veuillez vous référer à la documentation des API d'Alipay et WeChat Pay ou aux informations de plateformes telles que GitHub.
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!