Скрипт активации/деактивации карты при добавлении/удалении

Материал из BiTel WiKi

Перейти к: навигация, поиск

Скрипт активации/деактивации карты при добавлении/удалении

Пример скрипта, который срабатывает при манипуляции с картами модуля cerbercrypt на договоре, чтобы провести активацию/деактивацию карты для тех протоколов, где это используется. Пример для протокола norde2.

import bitel.billing.server.util.*;
import ru.bitel.bgbilling.modules.cerbercrypt.server.event.UserCardUpdateEvent;
import ru.bitel.bgbilling.modules.cerbercrypt.common.bean.UserCard;
import ru.bitel.bgbilling.modules.cerbercrypt.server.norde2.Norde2Con;
import ru.bitel.common.Preferences;
import ru.bitel.common.ParameterMap;
 
final static int CERBERCRYPT_MID = 666;
final static int SERVER_ID = 0;
 
private Norde2Con getConnection( Setup serverSetup )
{
	Preferences moduleSetup = serverSetup.getModuleSetup( CERBERCRYPT_MID );
	ParameterMap connectionSetup = moduleSetup.sub( "server." + SERVER_ID + "." );
	return new Norde2Con( connectionSetup, SERVER_ID );
}
 
public void onEvent( event1, setup, con, conSlave )
{
	print( "UserCard update event..." );
	UserCardUpdateEvent event = (UserCardUpdateEvent)event1;
	// добавление
	if( event.getUsercardBefore() == null && event.getUsercardAfter() != null )
	{
		print( "add" );
		Norde2Con cticon = getConnection( setup );
		print( cticon );
		cticon.connect();
		//cticon.connectionTest();
		cticon.enableSmartcard( event.getUsercardAfter().getNumber() );
		cticon.disconnect();
	}
	// удаление
	else if( event.getUsercardBefore() != null && event.getUsercardAfter() == null )
	{
		print( "delete" );
		Norde2Con cticon = getConnection( setup );
		print( cticon );
		cticon.connect();
		//cticon.connectionTest();
		cticon.stopSmartcard( event.getUsercardBefore().getNumber() );
		cticon.disconnect();
	}
	// изменение
	else if( event.getUsercardBefore() != null && event.getUsercardAfter() != null )
	{
		print( "edit" );
	}
}

Внимание! Данное решение/метод/статья относится к версии 5.2 и для других версий может быть неактуальна! Вам нужно самостоятельно поправить решение под свои нужды или воспользоваться помощью на форуме. Будем признательны, если внизу страницы или отдельной статьёй вы разместите исправленное решение для другой версии или подсказки что надо исправить.

Личные инструменты