Dengan perkembangan e-dagang, semakin ramai peniaga memilih untuk membuka pusat membeli-belah mereka sendiri di platform WeChat. Namun, cara mengurus pesanan dengan cekap telah menjadi masalah yang dihadapi oleh peniaga.
Sebagai bahasa pembangunan yang paling popular pada masa ini, PHP juga menunjukkan prestasi yang sangat baik dalam melaksanakan pengurusan pesanan pusat membeli-belah WeChat. Seterusnya, artikel ini akan memperkenalkan cara melaksanakan pengurusan pesanan pusat membeli-belah WeChat dalam PHP.
Pertama, kami perlu mendapatkan maklumat pesanan yang dikembalikan melalui pembayaran WeChat. WeChat Pay menghantar maklumat pesanan kepada pelayan pembangun melalui mekanisme panggil balik dan pembangun perlu menulis kod dalam pelayan untuk memproses maklumat pesanan. Dalam PHP, anda boleh menggunakan pembolehubah global $_POST untuk mendapatkan data POST yang dihantar daripada pelayan WeChat.
Secara amnya, pembangun perlu mendapatkan maklumat pesanan berdasarkan nombor pesanan yang dikembalikan oleh pelayan WeChat. Dalam PHP, anda boleh menghantar permintaan untuk menanyakan pesanan kepada pelayan WeChat melalui fungsi curl, seperti yang ditunjukkan di bawah:
$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);
Antaranya, $data ialah parameter yang perlu kami hantar ke pelayan WeChat, termasuk appid, mch_id, transaction_id, nonce_str dan sign. Parameter ini boleh diperolehi melalui platform pedagang WeChat. $data_xml ialah data yang menukarkan $data kepada format xml. http_post_data ialah fungsi yang menggunakan fungsi curl untuk menghantar permintaan POST ke pelayan WeChat. $res yang dikembalikan ialah hasil pertanyaan yang dikembalikan oleh pelayan WeChat.
Selepas mendapatkan maklumat pesanan, kami perlu menyimpannya dalam pangkalan data. Dalam PHP, terdapat banyak perpustakaan operasi pangkalan data yang sangat baik, seperti PDO, mysqli dan mysql, dll. Di sini kami memilih untuk menggunakan PDO untuk mengendalikan pangkalan data.
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(); }
Kod di atas bersambung ke pangkalan data melalui PDO dan menambah rekod maklumat pesanan baharu dalam pangkalan data.
Selepas maklumat pesanan disimpan, kami perlu melaksanakan operasi pengurusan seperti pertanyaan, pengubahsuaian dan pemadaman maklumat pesanan. Dalam PHP, anda boleh menggunakan corak MVC untuk melaksanakan logik pengurusan pesanan.
Dalam mod MVC, M mewakili Model, V mewakili View dan C mewakili Pengawal. Model bertanggungjawab untuk mengendalikan pangkalan data; Paparan bertanggungjawab untuk mengeluarkan data yang dijana oleh logik bahagian belakang ke halaman hujung hadapan Pengawal bertanggungjawab untuk menerima data yang diserahkan oleh borang bahagian hadapan dan melaksanakan operasi yang sepadan dalam pangkalan data.
Berikut ialah contoh pengurusan pesanan:
//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); } } }
Kod di atas merangkumi logik pengurusan pesanan ke dalam kelas yang berbeza, dan memanggil operasi yang sepadan melalui Pengawal.
Akhir sekali, kami perlu memaparkan maklumat pesanan di muka hadapan. Dalam PHP, anda boleh menggunakan enjin templat seperti Smarty untuk mencapai kesan ini. Di sini kami memilih enjin templat Smarty.
require_once('/path/to/smarty/libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->assign('order', $order); $smarty->display('/path/to/template/index.tpl');
Kod di atas memberikan maklumat pesanan kepada enjin templat Smarty dan menjana halaman hujung hadapan melalui enjin templat Smarty.
Ringkasnya, untuk melaksanakan pengurusan pesanan pusat membeli-belah WeChat dalam PHP, kami perlu melengkapkan langkah berikut:
Atas ialah kandungan terperinci Laksanakan pengurusan pesanan pusat membeli-belah WeChat dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!