public function refillAction($currencyId = 0) { $currency = null; if (!empty($_POST['currency_id'])) { $currency = Money\Currency::get((int) $_POST['currency_id']); } if ($currency && !empty($_POST['amount'])) { $pay = new Money\Pay(['data' => '', 'user_id' => \Users\User::$cur->id, 'currency_id' => $currency->id, 'sum' => (double) str_replace(',', '.', $_POST['amount']), 'type' => 'refill', 'description' => 'Пополнение баланса ' . $currency->name(), 'callback_module' => 'Money', 'callback_method' => 'refillPayRecive']); $pay->save(); Tools::redirect('/money/merchants/pay/' . $pay->id); } else { $currencies = Money\Currency::getList(['where' => ['refill', 1], 'forSelect' => true]); $this->view->setTitle('Пополнение счета'); $this->view->page(['data' => compact('currencies')]); } }
public function goToMerchant($pay, $merchant, $method, $merchantOptions) { $objectName = $merchant->object_name; if (is_array($pay)) { $pay = new Money\Pay($pay); $pay->save(); } switch ($method['type']) { case 'transfer': $sum = $pay->sum / $method['transfer']->rate; break; default: $sum = $pay->sum; } $className = 'Money\\MerchantHelper\\' . $objectName; return $className::goToMerchant($pay->id, $sum, $method['currency'], $merchantOptions['description'], $merchantOptions['success'], $merchantOptions['false']); }
<?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']; } }];