| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\common\models;
- use app\events\OrderEvent;
- use app\models\AccountLog;
- use app\models\LevelOrder;
- use app\models\MchCash;
- use app\models\Option;
- use app\models\SaasProfitCash;
- use app\models\SaasUser;
- use app\models\Order;
- use app\models\OrderUnion;
- use app\models\ReOrder;
- use app\models\User;
- use app\modules\client\models\OrderComplete;
- use app\plugins\food\models\FoodOrder;
- use app\utils\Notice\NoticeSend;
- use yii\base\Model;
- /**
- * 支付宝回调成功逻辑处理类
- * Class BytedanceNotifyForm
- * @package app\modules\common\models
- */
- class BytedanceNotifyForm extends Model
- {
- /**
- * 合并订单支付回调
- */
- public function UnionOrderNotify($res, $pay_type)
- {
- $order_union = OrderUnion::findOne([
- 'order_no' => $res['cp_orderno'],
- ]);
- if ($order_union->is_pay == 1) {
- return;
- }
- $order_id_list = json_decode($order_union->order_id_list, true);
- if (!$order_id_list) {
- return;
- }
- foreach ($order_id_list as $order_id) {
- $order = Order::findOne([
- 'id' => $order_id,
- 'is_pay' => 0,
- ]);
- if (!$order) {
- continue;
- }
- $order->is_pay = 1;
- $order->pay_time = time();
- $order->pay_type = $pay_type;
- $order->trade_status = Order::ORDER_FLOW_NO_SEND;
- $order->is_delete = 0;
- if ($order->save()) {
- try {
- //支付完成之后,相关的操作
- $form = new OrderComplete();
- $form->order_id = $order->id;
- $form->order_type = 0;
- $form->notify();
- } catch (\Exception $e) {
- \Yii::warning(['UNION ORDER EXCEPTION <======> ', $e->getMessage()]);
- }
- }
- }
- $order_union->is_pay = 1;
- $order_union->save();
- }
- /**
- * 充值回调
- */
- public function RechargeOrderNotify($res, $pay_type) {
- $order = ReOrder::findOne(['order_no' => $res['cp_orderno']]);
- if (!$order) {
- return;
- }
- if ($order->is_pay == 1) {
- return;
- }
- $order->is_pay = 1;
- $order->pay_time = time();
- $order->pay_type = $pay_type;
- if ($order->save()) {
- //金额充值
- $user = User::findOne($order->user_id);
- $before = $user->money;
- $user->money += floatval($order->pay_price) + floatval($order->send_price);
- $user->save();
- $log = new AccountLog();
- $log->store_id = get_store_id();
- $log->user_id = $user->id;
- if ($pay_type == 1) {
- $log->type = AccountLog::TYPE_WECHAT;
- } else if ($pay_type == 4) {
- $log->type = AccountLog::TYPE_ALIPAY;
- } else {
- $log->type = AccountLog::TYPE_BALANCE;
- }
- $log->log_type = AccountLog::LOG_TYPE_INCOME;
- $log->amount = floatval($order->pay_price) + floatval($order->send_price);
- $log->desc = "余额充值,付款金额:{$order->pay_price}元,赠送金额:{$order->send_price}元。";
- $log->before = $before;
- $log->after = $user->money;
- $log->operator = '';
- $log->operator_id = 0;
- $log->operator_type = AccountLog::TYPE_OPERATOR_NORMAL;
- $log->created_at = time();
- $log->order_id = $order->id;
- $log->order_type = AccountLog::TYPE_RECHARGE_ORDER;
- $log->save();
- }
- }
- /**
- * 会员购买回调
- */
- public function LevelOrderNotify($res, $pay_type) {
- $order = LevelOrder::findOne([
- 'order_no' => $res['cp_orderno'],
- ]);
- if (!$order) {
- return;
- }
- if ($order->is_pay == 1) {
- return;
- }
- $order->is_pay = 1;
- $order->pay_time = time();
- $order->pay_type = $pay_type;
- if ($order->save()) {
- //会员升级
- $user = User::findOne($order->user_id);
- $user->level = $order->after_level;
- $user->save();
- }
- }
- /**
- * saas联盟佣金提现回调
- */
- public function saasProfitCash($res, $pay_type) {
- $order = SaasProfitCash::findOne([
- 'order_no' => $res['cp_orderno'],
- ]);
- if (!$order) {
- return;
- }
- $order->is_pay = 1;
- $order->pay_time = time();
- $order->save();
- }
- /**
- * 商城订单回调
- * @param $res
- */
- public function MallOrderNotify($res, $pay_type) {
- $order = Order::findOne([
- 'order_no' => $res['cp_orderno'],
- ]);
- if (!$order) {
- return;
- }
- if ($order->is_pay == 1) {
- return;
- }
- $order->is_pay = 1;
- $order->pay_time = time();
- $order->pay_type = $pay_type;
- $order->trade_status = Order::ORDER_FLOW_NO_SEND;
- $order->is_delete = 0;
- if ($order->save()) {
- // 支付完成之后,相关的操作
- $form = new OrderComplete();
- $form->order_id = $order->id;
- $form->order_type = 0;
- $form->notify();
- }
- }
- /**
- * @param $res
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
- * @throws \GuzzleHttp\Exception\GuzzleException
- */
- public function ScanOrderNotify($res, $pay_type) {
- $order = \app\plugins\scanCodePay\models\Order::findOne([
- 'order_no' => $res['cp_orderno'],
- ]);
- if ($order->is_pay == 1) {
- return;
- }
- $order->is_pay = 1;
- $order->pay_time = time();
- $order->pay_type = $pay_type;
- $order->trade_status = Order::ORDER_FLOW_CONFIRM;
- $order->is_delete = 0;
- if ($order->save()) {
- // 支付完成之后,相关的操作
- $form = new OrderComplete();
- $form->order_id = $order->id;
- $form->order_type = 6;
- $form->notify();
- }
- }
- /**
- * 点餐回调
- */
- public function FoodNotify($res, $pay_type) {
- $order = FoodOrder::findOne([
- 'order_no' => $res['cp_orderno'],
- ]);
- if (!$order) {
- return;
- }
- if ($order->is_pay == 1) {
- return;
- }
- $order->is_pay = 1;
- $order->pay_time = time();
- $order->pay_type = $pay_type;
- $order->alipay_trade_no = $res['trade_no'];
- $order->save();
- }
- }
|