Реализация шлюзов на BeanShell,примеры стандартных и других шлюзов

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

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

Здесь описано как реализовывать шлюзы с помощью языка Beanshell. И есть примеры реализации.

Возможность создавать скриптовые шлюзы появилась в версии 4.5 .

В конфигурации типов шлюзов вы можете указывать например :

user_rule.editor.class=bitel.billing.module.services.ipn.editor.ManadContractRuleEditor
gate_manager.class=bitel.billing.server.ipn.ManadGateWorker

Здесь user_rule.editor.class - это класс, который отображает редактор шлюза в клиенте биллинга и сохрянет данные шлюза .Вы можете поставить один из стандартных классов(указаны в докуменатции в соотвествующих главах) либо поставить user_rule.editor.class.EmptyContractRuleEditor, если реадактировать шлюз не нужно в договоре. gate_manager.class - это класс , осуществляющий взаимодействие со шлюзом на стороне сервера биллинга. Именно логику этого класса мы и подменяем своим скриптовым шлюзом. На вкладке "Скрипт" при редактировании типа шлюза задается скрипт BeanShell . В нем должна быть обязательно реализована функция doSync() именно она и отвечает за взаимодействие со шлюзом. Вот код минимального шлюза:

protected void doSync()
{
 
}


Вы можете указать user_rule.editor.class=bitel.billing.server.ipn.EmptyGateWorker. Но если вы подменяете логику работы одного из стандартных шлюзов, то желательно указывать класс этого шлюза, т.к. логика его работы будет подменена , но есть еще другие правила, например в случае сложных иерархических шлюзов производится синхронизация с родителським шлюзом и она пока не может быть реализована скриптовым шлюзом.

В В конфигурации типа шлюза надо задать строку :

use.script=1

Стандартные шлюзы

Примеры шлюзов

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