Click
Протокол реализован для приема платежей через систему OOO «CLICK» (http://click.uz). Ниже приведен пример конфигурации для работы с платежной системой:
#протокол для ПС
mps.
1
.protocol=click
mps.
1
.protocol.ext=noBaseAuth,denyForJur
#Название ПС
mps.
1
.title=Click
#протокол включен (
1
), выключен (
0
)
mps.
1
.mode=
1
#данные для авторизации ПС
mps.
1
.login=user
mps.
1
.passw=password
#тип платежа из справочника типов платежей
mps.
1
.pid=
#секрет
mps.
1
.secret=
#Если в системе имеется обработчик события
"Перед занесением платежа"
,
#который изменяет входящую сумму платежа (например, переводит в валюту
#по курсу), то данный флаг позволяет заносить измененный платеж в таблицу
#баланса договора, а оригинальную сумму платежа заносить в таблицу платежей
#модуля mps.
mps.
1
.store.original.sum=
true
#режим поиска
mps.
1
.search.mode=
В некоторых случаях бывает полезно изменить сумму платежа, которая заносится в БД. Например, в ситуации, когда баланс абонента ведется в некоторой валюте, а платежная система присылает сумму в местной валюте. Для такого варианта предусмотрено событие "Перед добавлением платежа", в обработчик которого передается сумма платежа в виде 123.45. Обработчик может установить свою сумму и вернуть ее в модуль. Событие называется ru.bitel.bgbilling.modules.mps.server.events.MPSBeforePaymentEvent и настраивается на вкладке Сервис->Автоматизация->Функции глобальных событий. Сумму платежа, пришедшую от платежной системы, можно получить с помощью метода getPaymetSum(), которая возвращает java.util.BigDecimal. Установить измененную сумму можно с помощью метода setPaymentSum(BigDecimal newSum).
Пример обработчика события:
package
ru.bitel.bgbilling.modules.mps;
import
java.math.BigDecimal;
import
ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import
ru.bitel.bgbilling.modules.mps.server.events.MPSBeforePaymentEvent;
import
ru.bitel.bgbilling.server.util.Setup;
import
ru.bitel.common.sql.ConnectionSet;
public
class
ModifyPaymentSumm
extends
EventScriptBase<MPSBeforePaymentEvent>
{
@Override
public
void
onEvent( MPSBeforePaymentEvent event1, Setup setup2, ConnectionSet connectionSet3 )
throws
Exception
{
BigDecimal sum = event1.getPaymentSum();
sum = sum.multiply(
new
BigDecimal(
1.18
) );
event1.setPaymentSum( sum );
}
}