Maison >développement back-end >tutoriel php >Implémentation de l'initiation et de la requête de paiement WeChat en PHP
Avec la popularité du paiement WeChat, de plus en plus de sites Web doivent intégrer la fonction de paiement WeChat. Dans cet article, nous verrons comment implémenter l'initiation et la requête de paiement WeChat en PHP.
Pour lancer le paiement WeChat en PHP, la première étape consiste à appeler l'API de commande unifiée du paiement WeChat pour générer une commande de prépaiement. L'API doit transmettre certains paramètres nécessaires, notamment l'identifiant du commerçant, le montant du paiement, le numéro de commande, l'URL de rappel, etc. Voici un exemple de code :
<?php require_once('WxPayApi.php'); require_once('WxPayUnifiedOrder.php'); $order = new WxPayUnifiedOrder(); $order->SetBody('商品描述'); $order->SetOut_trade_no('订单号'); $order->SetTotal_fee('支付金额'); $order->SetNotify_url('回调URL'); $order->SetTrade_type('JSAPI'); $order->SetOpenid('用户OpenID'); $result = WxPayApi::unifiedOrder($order);
Après avoir appelé l'API de commande unifiée, nous devons obtenir les informations sur la commande de prépaiement, y compris l'ID de session de transaction de prépaiement (prepay_id) et d'autres paramètres nécessaires. Voici un exemple de code :
<?php require_once('WxPayApi.php'); require_once('WxPayData.php'); $input = new WxPayData(); $input->SetBody('商品描述'); $input->SetOut_trade_no('订单号'); $input->SetTotal_fee('支付金额'); $input->SetNotify_url('回调URL'); $input->SetTrade_type('JSAPI'); $input->SetOpenid('用户OpenID'); $result = WxPayApi::unifiedOrder($input); $prepay_id = $result['prepay_id']; $params = [ 'appId' => $result['appid'], 'timeStamp' => time(), 'nonceStr' => $result['nonce_str'], 'package' => "prepay_id={$prepay_id}", 'signType' => 'MD5' ]; $params['paySign'] = WxPayApi::getSign($params);
Après avoir obtenu les informations de commande prépayée, nous pouvons transmettre les paramètres obtenus au front-end pour permettre à l'utilisateur d'initier le paiement dans le client WeChat. Voici un exemple de code :
<?php echo '<script language="javascript">'; echo 'WeixinJSBridge.invoke("getBrandWCPayRequest", { "appId":"'.$params['appId'].'", "timeStamp":"'.$params['timeStamp'].'", "nonceStr":"'.$params['nonceStr'].'", "package":"'.$params['package'].'", "signType":"'.$params['signType'].'", "paySign":"'.$params['paySign'].'" }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ){ alert("支付成功"); }else{ alert("支付失败"); } });'; echo '</script>';
Une fois le paiement effectué, nous devons interroger les résultats du paiement pour nous assurer que la transaction a été effectuée avec succès. Voici un exemple de code :
<?php require_once('WxPayApi.php'); $input = new WxPayOrderQuery(); $input->SetOut_trade_no('订单号'); $result = WxpayApi::orderQuery($input); if ($result['trade_state'] == 'SUCCESS') { echo '支付成功'; } else { echo '支付失败'; }
Résumé :
Ce qui précède représente l'ensemble du processus d'initiation et d'interrogation du paiement WeChat en PHP. Lorsque nous devons intégrer le paiement WeChat sur le site Web, nous pouvons suivre les étapes ci-dessus. Il est recommandé d'utiliser le SDK officiellement fourni pour le développement, ce qui peut économiser beaucoup de temps et d'énergie.
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!