Click
Протокол реализован для приема платежей через систему OOO «CLICK» (http://click.uz). Ниже приведен пример конфигурации для работы с платежной системой:
#протокол для ПСmps.1.protocol=clickmps.1.protocol.ext=noBaseAuth,denyForJur#Название ПСmps.1.title=Click#протокол включен (1), выключен (0)mps.1.mode=1#данные для авторизации ПСmps.1.login=usermps.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 ); }}