Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Обязательным условием со стороны paynet является наличие HTTPS.

 

В некоторых случаях бывает полезно изменить сумму платежа, которая заносится в БД. Например, в ситуации, когда баланс абонента ведется в некоторой валюте, а платежная система присылает сумму в местной валюте. Для такого варианта предусмотрено событие "Перед добавлением платежа", в обработчик которого передается сумма платежа в виде 123.45. Обработчик может установить свою сумму и вернуть ее в модуль. Событие называется ru.bitel.bgbilling.modules.mps.server.events.MPSBeforePaymentEvent и настраивается на вкладке Сервис->Автоматизация->Функции глобальных событий. Сумму платежа, пришедшую от платежной системы, можно получить с помощью метода getPaymetSum(), которая возвращает java.util.BigDecimal. Установить измененную сумму можно с помощью метода setPaymentSum(BigDecimal newSum).

Пример обработчика события:

Блок кода
languagejava
titleПример обработчика события "Перед занесением платежа"
collapsetrue
package ru.bitel.bgbilling.modules.mps.paynet;

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 );
    }
}