Implémenter la gestion des commandes du centre commercial WeChat en PHP

王林
Libérer: 2023-05-13 21:12:01
original
1058 Les gens l'ont consulté

Avec le développement du e-commerce, de plus en plus de commerçants choisissent d'ouvrir leur propre centre commercial sur la plateforme WeChat. Cependant, la gestion efficace des commandes est devenue un problème auquel sont confrontés les commerçants.

PHP, en tant que langage de développement le plus populaire à l'heure actuelle, a également de bonnes performances dans la gestion des commandes des centres commerciaux WeChat. Ensuite, cet article présentera comment implémenter la gestion des commandes du centre commercial WeChat en PHP.

Tout d'abord, nous devons obtenir les informations de commande renvoyées par WeChat Pay. WeChat Pay envoie les informations de commande au serveur du développeur via un mécanisme de rappel, et le développeur doit écrire du code sur le serveur pour traiter les informations de commande. En PHP, vous pouvez utiliser la variable globale $_POST pour obtenir les données POST transmises depuis le serveur WeChat.

Généralement, les développeurs doivent obtenir des informations de commande en fonction du numéro de commande renvoyé par le serveur WeChat. En PHP, vous pouvez envoyer une requête pour interroger la commande au serveur WeChat via la fonction curl, comme indiqué ci-dessous :

$url = "https://api.weixin.qq.com/pay/orderquery";
$data = array(
  'appid' => 'your_appid',
  'mch_id' => 'your_mch_id',
  'transaction_id' => 'your_transaction_id',
  'nonce_str' => 'your_nonce_str',
  'sign' => 'your_sign'
);
$data_xml = arrayToXml($data);
$res = http_post_data($url, $data_xml);
$res_obj = json_decode(json_encode(simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
Copier après la connexion

Parmi eux, $data sont les paramètres que nous devons transmettre au serveur WeChat, notamment appid, mch_id, transaction_id, nonce_str et sign. Ces paramètres peuvent être obtenus via la plateforme marchande WeChat. $data_xml sont les données qui convertissent $data au format XML. http_post_data est une fonction qui utilise la fonction curl pour envoyer une requête POST au serveur WeChat. Le $res renvoyé est le résultat de la requête renvoyé par le serveur WeChat.

Après avoir obtenu les informations de commande, nous devons les stocker dans la base de données. En PHP, il existe de nombreuses excellentes bibliothèques d'opérations de bases de données, telles que PDO, mysqli et mysql, etc. Ici, nous choisissons d'utiliser PDO pour faire fonctionner la base de données.

try {
  $pdo = new PDO('mysql:host=localhost;dbname=test', 'test', 'test');
  $sql = 'INSERT INTO order (out_trade_no, transaction_id, total_fee) VALUES (:out_trade_no, :transaction_id, :total_fee)';
  $stmt = $pdo->prepare($sql);
  $stmt->bindParam(':out_trade_no', $out_trade_no);
  $stmt->bindParam(':transaction_id', $transaction_id);
  $stmt->bindParam(':total_fee', $total_fee);
  $stmt->execute();
} catch (PDOException $e) {
  echo $e->getMessage();
}
Copier après la connexion

Le code ci-dessus se connecte à la base de données via PDO et ajoute un nouvel enregistrement d'informations de commande dans la base de données.

Une fois les informations de commande stockées, nous devons mettre en œuvre des opérations de gestion telles que la requête, la modification et la suppression des informations de commande. En PHP, vous pouvez utiliser le modèle MVC pour implémenter une logique de gestion des commandes.

En mode MVC, M représente le modèle, V représente la vue et C représente le contrôleur. Le modèle est responsable du fonctionnement de la base de données ; la vue est responsable de la sortie des données générées par la logique back-end vers la page frontale ; le contrôleur est responsable de la réception des données soumises par le formulaire frontal et de l'exécution des opérations correspondantes. dans la base de données.

Ce qui suit est un exemple de gestion des commandes :

//model
class OrderModel {
  public function getOrder($out_trade_no) {
    //查询订单信息
  }
  public function updateOrder($out_trade_no, $data) {
    //更新订单信息
  }
  public function deleteOrder($out_trade_no) {
    //删除订单信息
  }
}

//view
class OrderView {
  public function showOrder($order) {
    //显示订单信息
  }
}

//controller
class OrderController {
  private $model;
  private $view;
  public function __construct($model, $view) {
    $this->model = $model;
    $this->view = $view;
  }
  public function getOrder($out_trade_no) {
    $order = $this->model->getOrder($out_trade_no);
    $this->view->showOrder($order);
  }
  public function updateOrder($out_trade_no, $data) {
    $this->model->updateOrder($out_trade_no, $data);
  }
  public function deleteOrder($out_trade_no) {
    $this->model->deleteOrder($out_trade_no);
  }
}

//route
$model = new OrderModel();
$view = new OrderView();
$controller = new OrderController($model, $view);
if(isset($_POST['out_trade_no'])) {
  $out_trade_no = $_POST['out_trade_no'];
  if(isset($_POST['action'])) {
    $action = $_POST['action'];
    if($action == 'update') {
      //修改订单信息
      $data = array(
        'transaction_id' => $_POST['transaction_id'],
        'total_fee' => $_POST['total_fee']
      );
      $controller->updateOrder($out_trade_no, $data);
    } else if($action == 'delete') {
      //删除订单信息
      $controller->deleteOrder($out_trade_no);
    } else {
      //查询订单信息
      $controller->getOrder($out_trade_no);
    }
  }
}
Copier après la connexion

Le code ci-dessus encapsule la logique de gestion des commandes dans différentes classes et appelle les opérations correspondantes via le contrôleur.

Enfin, nous devons afficher les informations de commande sur la page front-end. En PHP, vous pouvez utiliser des moteurs de modèles tels que Smarty pour obtenir cet effet. Ici, nous choisissons le moteur de modèles Smarty.

require_once('/path/to/smarty/libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->assign('order', $order);
$smarty->display('/path/to/template/index.tpl');
Copier après la connexion

Le code ci-dessus attribue les informations de commande au moteur de modèle Smarty et génère la page frontale via le moteur de modèle Smarty.

En résumé, pour implémenter la gestion des commandes du centre commercial WeChat en PHP, nous devons suivre les étapes suivantes :

  1. Obtenir les informations de commande à partir du rappel WeChat
  2. Stocker les informations de commande dans la base de données ; informations, modifications, suppressions et autres opérations de gestion, et utilisez le modèle MVC pour les encapsuler dans différentes classes
  3. Affichez les informations de commande sur la page frontale, qui peuvent être implémentées à l'aide de moteurs de modèles tels que Smarty.
  4. Ce qui précède est tout le contenu de la mise en œuvre de la gestion des commandes du centre commercial WeChat en PHP. Je pense que cela sera utile aux développeurs qui souhaitent développer le centre commercial 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal