|
@@ -3,6 +3,8 @@
|
|
|
namespace mall\controllers;
|
|
namespace mall\controllers;
|
|
|
|
|
|
|
|
use biz\product\classes\ProductClass;
|
|
use biz\product\classes\ProductClass;
|
|
|
|
|
+use biz\shop\classes\ShopClass;
|
|
|
|
|
+use biz\wx\classes\WxMessageClass;
|
|
|
use bizHd\custom\classes\HdClass;
|
|
use bizHd\custom\classes\HdClass;
|
|
|
use bizHd\wx\classes\WxOpenClass;
|
|
use bizHd\wx\classes\WxOpenClass;
|
|
|
use bizMall\custom\classes\CustomClass;
|
|
use bizMall\custom\classes\CustomClass;
|
|
@@ -605,7 +607,7 @@ class OrderController extends BaseController
|
|
|
$post = Yii::$app->request->post();
|
|
$post = Yii::$app->request->post();
|
|
|
$orderSn = $post['orderSn'] ?? '';
|
|
$orderSn = $post['orderSn'] ?? '';
|
|
|
//避免重复提交
|
|
//避免重复提交
|
|
|
- util::checkRepeatCommit($orderSn, 10);
|
|
|
|
|
|
|
+ util::checkRepeatCommit($orderSn, 5);
|
|
|
$connection = Yii::$app->db;
|
|
$connection = Yii::$app->db;
|
|
|
$transaction = $connection->beginTransaction();
|
|
$transaction = $connection->beginTransaction();
|
|
|
try {
|
|
try {
|
|
@@ -619,6 +621,29 @@ class OrderController extends BaseController
|
|
|
$payWay = dict::getDict('payWay', 'balancePay');
|
|
$payWay = dict::getDict('payWay', 'balancePay');
|
|
|
\bizHd\order\classes\OrderClass::payAfter($order, $payWay);
|
|
\bizHd\order\classes\OrderClass::payAfter($order, $payWay);
|
|
|
$transaction->commit();
|
|
$transaction->commit();
|
|
|
|
|
+
|
|
|
|
|
+ //解决重复通知,重要
|
|
|
|
|
+ $cacheKey = 'mall_order_balance_pay_' . $orderSn;
|
|
|
|
|
+ $has = Yii::$app->redis->executeCommand('GET', [$cacheKey]);
|
|
|
|
|
+ if (empty($has)) {
|
|
|
|
|
+ Yii::$app->redis->executeCommand('SETEX', [$cacheKey, 864000, 'has']);
|
|
|
|
|
+
|
|
|
|
|
+ //打印小票和语音播报
|
|
|
|
|
+ $order = \bizHd\order\classes\OrderClass::getByCondition(['orderSn' => $orderSn], true);
|
|
|
|
|
+ \bizHd\order\classes\OrderClass::onlinePrint($order);
|
|
|
|
|
+
|
|
|
|
|
+ $shopId = $order->shopId ?? 0;
|
|
|
|
|
+ $shop = ShopClass::getById($shopId, true);
|
|
|
|
|
+ if (in_array($order->fromType, [1, 3])) {
|
|
|
|
|
+ //您有新的收入提醒
|
|
|
|
|
+ WxMessageClass::gatheringIncomeInform($shop, $order);
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($order->fromType == 2) {
|
|
|
|
|
+ //来自商城的新订单微信通知
|
|
|
|
|
+ WxMessageClass::hdNewOrderInform($shop, $order);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
util::complete('支付成功');
|
|
util::complete('支付成功');
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
$transaction->rollBack();
|
|
$transaction->rollBack();
|