Ejemplo n.º 1
0
}
//После неудачной оплаты по банковской карте за верификацию закрываем окно
if ($_SESSION['quickver_is_begin'] == 1) {
    unset($_SESSION['quickver_is_begin']);
    echo '<html><body><script>window.close();</script></body></html>';
    exit;
}
$bill = new billing(get_uid(0));
$action = __paramInit('string', null, 'action', null);
// заново оплатить
if ($action === 'pay') {
    $reserveID = __paramInit('string', null, 'reserve_id', null);
    if ($reserveID) {
        $success = $bill->setReserveStatus($reserveID, billing::RESERVE_CANCEL_STATUS);
        if ($success) {
            if ($bill->updateOrderListStatus($reserveID, billing::STATUS_NEW)) {
                header_location_exit('/bill/orders/');
            }
        }
    }
}
$bill->setPage('fail');
if (!count($bill->list_service)) {
    header_location_exit('/404.php');
}
$reserveData = current($bill->list_service);
$js_file = array('billing.js');
$content = 'content.php';
$header = '../../header.new.php';
$footer = '../../footer.new.html';
include '../../template3.php';
Ejemplo n.º 2
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;
 }