<div class="b-layout b-layout_pad_10 b-layout_bord_e6 b-layout_margbot_30"> <h3 class="b-layout__h3">Привязанная платежная система</h3> <?php if (!WalletTypes::checkWallet($wallet)) { ?> <a href="javascript:void(0)" onclick="toggleWalletPopup(event);" class="b-button b-button_rectangle_color_green"> <span class="b-button__b1"> <span class="b-button__b2"> <span class="b-button__txt">Привязать</span> </span> </span> </a> <?php } else { //if ?> <div class="b-layout__txt b-layout__txt_fontsize_15 b-layout__txt_color_808080"> <?php echo WalletTypes::getNameWallet($wallet->data['type'], 1); ?>   <?php echo $wallet->getWalletBySecure(); ?> </div> <div class="b-layout__txt"> <a class="b-layout__link b-layout__link_dot_c10600 b-layout__link_fontsize_15" href="javascript:void(0)" onclick="toggleWalletPopup(event);">Настроить</a> </div> <?php } //else ?>
/** * Функция для автооплаты (учитывает состояние личного счета). * * @param billing $bill Объект биллинга (должен быть подготовлен резерв перед оплатой @see self::preparePayments()) * @param float $ammount Сумма для списывания */ public static function autoPayed(billing $bill, $ammount) { if ($bill->reserved <= 0) { return false; } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wallet/wallet.php'; $complete = false; $wallet = WalletTypes::initWalletByType($bill->user['uid']); // Пытаемся оплатить из личного счета иначе автооплатой если она включена // @todo при неудаче покупки пробовать ли оплатить через привязанный кошелек? if ($bill->acc['sum'] >= $ammount) { $bill->transaction = $bill->account->start_transaction($bill->user['uid'], 0); $complete = $bill->completeOrders($bill->reserved); if ($complete) { $bill->account->commit_transaction($bill->transaction, $bill->user['uid'], null); } } elseif (WalletTypes::checkWallet($wallet)) { if ($wallet->api->checkToken()) { // Проводим списывание денег $complete = $wallet->payment($ammount); } else { // Ключ не действителен сообщаем об этом владельцу $complete = false; } } // Если все плохо отменяем операции if (!$complete) { $success = $bill->setReserveStatus($bill->reserved, self::RESERVE_CANCEL_STATUS); if ($success) { $bill->updateOrderListStatus($bill->reserved, self::STATUS_DELETE); } } return $complete; }
<?php include $_SERVER['DOCUMENT_ROOT'] . "/bill/widget/tpl.last_history.php"; ?> <?php include $_SERVER['DOCUMENT_ROOT'] . "/bill/widget/tpl.right_help.php"; ?> <span class="walletRightBlock"> <?php $wallet = $bill->wallet; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php"; $u = new users(); $u->GetUserByUID(get_uid('false')); ?> <?php if ($u->GetField(get_uid(false), $e, 'is_pro_auto_prolong', false) == 't' && WalletTypes::checkWallet($wallet)) { ?> <?php include $_SERVER['DOCUMENT_ROOT'] . "/bill/widget/tpl.right_wallet.php"; ?> <?php } ?> </span>
public function failAutoprolong($info, $service = 'pro') { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wallet/wallet.php'; $user = $info['user']; if ($user['bill_subscribe'] == 'f') { return; } $date = date('j') . ' ' . monthtostr(date('n'), true) . ' ' . date('Y года'); $cost = $info['sum_cost']; $wallet = WalletTypes::initWalletByType($user['uid']); $type = WalletTypes::checkWallet($wallet) ? $wallet->data['type'] : -1; $walletName = WalletTypes::getNameWallet($type, 3, $user['acc_id']); if ($service == 'pro') { $this->subject = 'FL.ru: Автопродление аккаунта PRO отключено'; $message = "Сегодня, {$date}, должно было состояться повторное списание средств для автоматического продления срока действия вашего аккаунта PRO.<br/>"; $message .= "Всего с {$walletName} должно быть списано {$cost} " . ending($cost, 'рубль', 'рубля', 'рублей') . ', однако в процессе списания вновь произошла ошибка.<br/><br/>'; $message .= 'Срок действия аккаунта PRO завершен, а его автопродление временно отключено и возобновится при следующем приобретении услуги.<br/><br/>'; $message .= "Информацию о повторном приобретении услуг и автопродлении, а также ответы на все интересующие вопросы вы можете найти в нашем <a href='https://feedback.fl.ru/{$this->_addUrlParams('b', '?')}'>сообществе поддержки</a>."; } $this->recipient = "{$user['uname']} {$user['usurname']} [{$user['login']}] <{$user['email']}>"; $this->message = $this->getHtml($user['login'], $message, array('header' => 'default', 'footer' => 'default'), array('login' => $user['login'])); $this->send('text/html'); }