public function manualClosePayAction($payId) { $pay = \Money\Pay::get((int) $payId); $result = new Server\Result(); if ($pay && $pay->pay_status_id == 1) { $pay->pay_status_id = 2; $pay->save(); if ($pay->callback_module && $pay->callback_method) { \App::$primary->{$pay->callback_module}->{$pay->callback_method}(['status' => 'success', 'payId' => $pay->id, 'pay' => $pay]); } $result->successMsg = 'Счет был проведен'; $result->send(); } $result->success = false; $result->content = 'Такой счет не найден'; $result->send(); }
<?php return ['name' => 'Онлайн оплата', 'handler' => function ($cart) { if (\App::$cur->money) { $sums = $cart->finalSum(); foreach ($sums->sums as $currency_id => $sum) { if (!$currency_id) { continue; } $pay = \Money\Pay::get([['data', $cart->id], ['currency_id', $currency_id], ['user_id', \Users\User::$cur->id]]); if (!$pay) { $pay = new Money\Pay(['data' => $cart->id, 'currency_id' => $currency_id, 'user_id' => \Users\User::$cur->id, 'sum' => $sum, 'description' => 'Оплата заказа №' . $cart->id . ' в онлайн-магазине', 'type' => 'pay', 'pay_status_id' => 1, 'callback_module' => 'Ecommerce', 'callback_method' => 'cartPayRecive']); $pay->save(); } elseif ($pay->sum != $sum) { $pay->sum = $sum; $pay->save(); } } return ['/money/merchants/pay/?data=' . $cart->id, 'Ваш заказ был создан. Вам необходимо оплатить счета, после чего с вами свяжется администратор для уточнения дополнительной информации', 'success']; } }];