Exemple #1
0
 /**
  * Функция для автооплаты (учитывает состояние личного счета).
  *
  * @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;
 }
if (!($freeze_set || $freezed_now)) {
    return;
}
?>
<div class="b-layout__txt <?php 
echo !$pro_last ? 'b-layout__txt_hide' : '';
?>
 buyed_pro">
    <table class="b-layout__table b-layout__table_center b-layout__table_width_940 b-layout__table_margtop_20 b-layout__table_margbot_30">
       <tr class="b-layout__tr">
          <td id="autoprolong_html" class="b-layout__td b-layout__td_left b-layout__td_width_50ps b-layout__td_width_full_ipad">
<?php 
if ($u_is_pro_auto_prolong == 't') {
    ?>
            <?php 
    $wallet = WalletTypes::initWalletByType(get_uid(false));
    if ($wallet != false) {
        include $_SERVER['DOCUMENT_ROOT'] . '/bill/widget/tpl.info_wallet.php';
    } else {
        $service = array('auto' => $u_is_pro_auto_prolong, 'id' => get_uid(false));
        $_SESSION['redirect_uri_wallet'] = is_emp() ? '/payed-emp/' : '/payed/';
        ?>
                <span class="walletInfo">
                    <div class="b-layout__h3 b-layout__h3_padbot_5">Автопродление</div>

                </span>
                <span id="wallet">
                    <?php 
        $popup_content = $_SERVER['DOCUMENT_ROOT'] . '/bill/widget/popups/popup.wallet.php';
        include $_SERVER['DOCUMENT_ROOT'] . '/bill/widget/tpl.popup.php';
        ?>
Exemple #3
0
 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');
 }