$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(); } }