| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- namespace common\logic\notify;
- use common\enums\OrderStatusEnum;
- use common\enums\PayTypeEnum;
- use common\enums\platform\PlatformEnum;
- use common\enums\StatusEnum;
- use common\listeners\admin\order\AddonsPaidListener;
- use common\models\addons\AddonsOrder;
- use common\models\platform\PlatformOrder;
- use common\traits\ErrorTrait;
- use Exception;
- /**
- * Class Notify
- * @Author: hua
- * @DateTime: 2021/10/18 9:39
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @package common\logic\notify
- */
- class AddonsPayNotify
- {
- use ErrorTrait;
- /**
- * @Author: hua
- * @DateTime: 2021/10/18 9:57
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @param $order_info
- * @return bool
- */
- public function notify($order_info)
- {
- try {
- $order = AddonsOrder::findOne(['order_no' => $order_info['order_no']]);
- if (empty($order)) throw new Exception('暂无此应用付费订单');
- $time = time();
- $order->order_status = OrderStatusEnum::ACCOMPLISH;
- $order->pay_status = $order_info['is_pay'];
- $order->payment_type = $order_info['pay_type'];
- $order->pay_time = $time;
- if (!$order->save()) throw new \yii\db\Exception($order->getErrorMessage());
- // 修改订单总表
- $platform_order = PlatformOrder::findOne(['order_id' => $order->id, 'from_type' => PlatformEnum::FROM_TYPE_ADDONS_PAY]);
- $platform_order->order_status = OrderStatusEnum::ACCOMPLISH;
- $platform_order->pay_status = StatusEnum::ENABLED;
- $platform_order->payment_type = $order_info['pay_type'];
- $platform_order->pay_time = $time;
- $platform_order->settlement_status = StatusEnum::ENABLED;
- if (!$platform_order->save()) throw new \yii\db\Exception($platform_order->getErrorMessage());
- // 订单支付完成处理后续逻辑
- $res = AddonsPaidListener::async_handle(['id' => $order->id]);
- if ($res == false) throw new \Exception(AddonsPaidListener::getStaticError());
- return true;
- } catch (Exception $e) {
- echo $e->getMessage();
- $this->setError($e->getMessage());
- return false;
- }
- }
- }
|