forum.bitel.ru
http://forum.bitel.ru/

Проверка шлюзов IPN при работе в кредит
http://forum.bitel.ru/viewtopic.php?f=7&t=38
Страница 1 из 1

Автор:  lacost [ 08 янв 2007, 02:58 ]
Заголовок сообщения:  Проверка шлюзов IPN при работе в кредит

Вот, обнаружил багу либо фичу... вопрос к разработчикам.

Есть пользователи работающие в кредит.
При запуске процедуры проверки шлюзов (IPNTestGates), закрываются все отрицательные бюджеты без проверки на режим договора. Т.е. кредитный пользователь с отрицательным балансом не имеет доступ к ресурсам.

И еще вопрос:
Кто "открывает" гейт? В IPNTestGates только закрытие.
Или в системе принято правило, что при внесении средств на счет, автоматом открывается гейт?

Автор:  Администратор [ 08 янв 2007, 13:39 ]
Заголовок сообщения: 

В текущей версии IPN модуль действительно игнорирует лимит. Дело в том что модуль остался с тех времен когда в биллинге были только дебетовые договора + лимит. В 4.0 версии мы сделаем логику поведения соответствующую общей идеологии биллинга. Пока можно только сильно отпускать лимит :(

Автор:  lacost [ 08 янв 2007, 21:20 ]
Заголовок сообщения: 

Ок. с кредитом понятно.

Но, остался 2-й вопрос на счет открытия гейта.

Как я понял, задача проверки шлюзов только закрывает отрицательные договора.

В идеале мне надо чтобы он закрывал отрицательные и открывал положительные договора, так как обновление статуса пользователя (баланс, лимит или режим договора) может происходить вне сервера приложений - т.е. напрямую в базе.

Автор:  Администратор [ 09 янв 2007, 17:46 ]
Заголовок сообщения: 

Открытие происходит по событию прихода платежа на договор. Если закидываете деньги напрямую в БД - необходимо послать HTTP запрос на сервер биллинга как будто был приход, можно нулевой.

Автор:  MySTeRious [ 13 дек 2007, 10:28 ]
Заголовок сообщения: 

А если нужно открывать гейт при определённом размере платежа (достаточном)?

Написан скрипт на событие прихода платежа, который должен открывать договору доступ в интернет, задумка была общая для модулей IPN & VPN, потому скрипт просто переключает режимы кредит/дебет, чтобы пускать/не пускать. С модулем VPN всё проходит нормально, а вот для IPN шлюз не открывается.

Пробовал так:
gateList = gm.getContractGates( cid );
if( gateList != NULL )
{
for( Iterator it = gateList.iterator(); it.hasNext(); )
{
ipn_gate = it.next();
gm.UpdateGate( ipn_gate.getID(), ipn_gate );
}
print( "Gates updated." );
}
else
{
print( "Gates not found." );
}

Ругается, что нет такой функции "UpdateGate( int, gate )", судя явадокам "UpdateGate( string, gate )" действительно не соответствует этому описанию.

Подскажите, пожалуйста, как же можно сделать чтобы при выполнении этого скрипта, после переключения режима договора на Кредит, автоматически открывался шлюз?

BgBilling server v4.3

Автор:  Администратор [ 13 дек 2007, 14:42 ]
Заголовок сообщения: 

Вообще IPN вроде сам умеет шлюз открывать, попробуйте поставить в конфиге модуля:

Код:
#статус шлюза клиента после оплаты и разблокирования 0 - открыт, 1 - закрыт
status.after.unlock=0

Автор:  MySTeRious [ 13 дек 2007, 16:57 ]
Заголовок сообщения: 

Вот, это тоже полезная вещь, спасибо большое.
Но проблема как-раз в том, что шлюз не переходит из статуса "заблокировано" в тот статус, что указывается в этой опции.
Пока что работает только так:
>Приходит достаточный платёж --- у договора снимается группа "должник" и переключается режим в "кредит"
>Приходит ещё один любой платёж --- шлюз переходит из статуса "заблокировано" в статус "закрыто"

Автор:  Администратор [ 13 дек 2007, 17:07 ]
Заголовок сообщения: 

А достаточный платеж это сколько? Баланс становится больше лимита? Или оплачивается наработка предыдущего месяца?

Автор:  MySTeRious [ 17 дек 2007, 11:32 ]
Заголовок сообщения: 

Оплата входящего остатка на начало текущего месяца.

Автор:  Администратор [ 17 дек 2007, 11:56 ]
Заголовок сообщения: 

У нас биллинг пока может сравнивать лишь текущий остаток с лимитом для ДЕБЕТ режима. А для КРЕДИТА вообще все время все открыто. Полноценная работа с кредитовыми договорами, с плановым раз в месяц выбором и отключением должников пока только в разработке. Надеемся к 4.4 сделать.
Скриптами теоретически это сделать тоже можно, при смене режима на КРЕДИТ еще тогда вызывайте функцию:

http://bgbilling.ru/v4.3/javadoc/bitel/ ... nager.html

Код:
import bitel.billing.server.ipn.bean.*;

new ContractStatusManager( con, <код модуля> ).changeStatus(cid, 0, 0, true) ;

Автор:  MySTeRious [ 20 дек 2007, 11:44 ]
Заголовок сообщения: 

Большое спасибо, очень помогло, всё работает

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/