From b5c0c9dd6b4c27517585b07967e1e6fd091a31da Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 20 Oct 2020 12:15:44 +0800 Subject: [PATCH] 1 --- webapp/classes/OrderCtrl.php | 7 ++++--- webapp/controller/PayController.class.php | 19 ++++++++++++------- webapp/sdkwarpper/BaseSdk.php | 5 +++-- webapp/sdkwarpper/UnifiedWeiXin.php | 13 +++++++++---- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/webapp/classes/OrderCtrl.php b/webapp/classes/OrderCtrl.php index 81ef55c..5261b2f 100644 --- a/webapp/classes/OrderCtrl.php +++ b/webapp/classes/OrderCtrl.php @@ -53,13 +53,13 @@ class OrderCtrl { return uniqid('201020') . $hex_str; } - public function getOrderByCpOrderId($cp_orderid) + public function getOrder($cp_orderid) { $conn = $this->getMysql($this->getCpOrderIdDNA($cp_orderid)); $row = $conn->execQueryOne('SELECT * FROM orderinfo ' . 'WHERE orderid=:orderid;', array( - ':orderid' => $orderid + ':orderid' => $cp_orderid ) ); return $row; @@ -78,6 +78,7 @@ class OrderCtrl { { $gameid = phpcommon\extractGameId($order_info['account_id']); $openid = phpcommon\extractOpenId($order_info['account_id']); + $channel = phpcommon\extractChannel($order_info['account_id']); $conn = $this->getMysql($this->getStrDNA($order_info['account_id'])); $ret = $conn->execScript('INSERT INTO orderinfo(' . ' orderid, account_id, roleid, server_id, channel, ' . @@ -97,7 +98,7 @@ class OrderCtrl { ':account_id' => $order_info['account_id'], ':roleid' => $order_info['roleid'], ':server_id' => $order_info['server_id'], - ':channel' => $order_info['channel'], + ':channel' => $channel, ':poly_sdk_channel' => $order_info['poly_sdk_channel'], ':unified_channel' => $order_info['unified_channel'], ':gameid' => $gameid, diff --git a/webapp/controller/PayController.class.php b/webapp/controller/PayController.class.php index 5dde97b..b1180ad 100644 --- a/webapp/controller/PayController.class.php +++ b/webapp/controller/PayController.class.php @@ -49,14 +49,19 @@ class PayController { public function queryOrderInfo() { - $channel = phpcommon\extractChannel($_REQUEST['account_id']); - $sdk = sdkwarpper\createSdkByChannel($channel); - if (!$sdk) { - echo 'is null'; - } else { - $sdk->setChannel($channel); - $sdk->queryOrderInfo(); + require 'classes/OrderCtrl.php'; + $order_ctrl = new classes\OrderCtrl(); + $order_info = $order_ctrl->getOrder($_REQUEST['cp_orderid']); + if (!$order_info || $order_info['account_id'] != $_REQUEST['account_id']) { + phpcommon\sendError(1, '订单不存在'); + return; } + echo json_encode(array( + 'errcode' => 0, + 'errmsg' => '', + 'cp_orderid' => $order_info['orderid'], + 'status' => $order_info['status'], + )); } } diff --git a/webapp/sdkwarpper/BaseSdk.php b/webapp/sdkwarpper/BaseSdk.php index 24d8cd8..8a94404 100644 --- a/webapp/sdkwarpper/BaseSdk.php +++ b/webapp/sdkwarpper/BaseSdk.php @@ -24,7 +24,7 @@ class BaseSdk error_log('basesdk new'); } - protected function setChannel($channel) + public function setChannel($channel) { $this->channel = $channel; } @@ -39,9 +39,10 @@ class BaseSdk public function queryOrderInfo() { - $order_info = $this->order_ctrl->getOrderByCpOrderId($_REQUEST['cp_orderid']); + $order_info = $this->order_ctrl->getOrder($_REQUEST['cp_orderid']); if (!$order_info) { phpcommon\sendError(1, '订单不存在'); + return; } echo json_encode(array( 'errcode' => 0, diff --git a/webapp/sdkwarpper/UnifiedWeiXin.php b/webapp/sdkwarpper/UnifiedWeiXin.php index 9caa489..1676c71 100644 --- a/webapp/sdkwarpper/UnifiedWeiXin.php +++ b/webapp/sdkwarpper/UnifiedWeiXin.php @@ -12,12 +12,17 @@ class UnifiedWeiXin extends BaseSdk { function __construct() { parent::__construct(); - $this->unified_channel = $this->channel; $this->conf_appid = ''; $this->conf_mch_id = ''; $this->conf_pay_secret_key = ''; } + public function setChannel($channel) + { + parent::setChannel($channel); + $this->unified_channel = $this->channel; + } + private function loadConfig() { $config_name = "../config/game{$this->gameid}/{$this->channel}/config.php"; @@ -31,7 +36,7 @@ class UnifiedWeiXin extends BaseSdk { public function preOrder() { $this->gameid = phpcommon\extractGameId($_REQUEST['account_id']); - $this->real_channel = phpcommon\extractChannelId($_REQUEST['account_id']); + $this->real_channel = phpcommon\extractChannel($_REQUEST['account_id']); $this->loadConfig(); $cp_orderid = $this->order_ctrl->genOrderId($_REQUEST['account_id']); @@ -42,10 +47,10 @@ class UnifiedWeiXin extends BaseSdk { 'account_id' => $_REQUEST['account_id'], 'roleid' => '', 'server_id' => 0, + 'itemid' => 1, 'price' => 101, 'poly_sdk_channel' => $this->poly_sdk_channel, 'unified_channel' => $this->unified_channel, - 'itemid' => $itemid, 'ipv4' => phpcommon\getIPv4(), ) ); @@ -73,7 +78,7 @@ class UnifiedWeiXin extends BaseSdk { error_log(json_encode($params)); error_log(phpcommon\objectToXml($params)); $response = ''; - if (phpcommon\HttpClient::postContent( + if (!phpcommon\HttpClient::postContent( 'https://api.mch.weixin.qq.com/pay/unifiedorder', phpcommon\objectToXml($params), $response