ru.bitel.bgbilling.modules.mps.server.bean

## Class MPSTransactionManager

- java.lang.Object
- - ru.bitel.bgbilling.modules.mps.server.bean.MPSTransactionManager

- Direct Known Subclasses:
    BiSysTransactionManager, CitiPayTransactionManager, ClickTransactionManager, ComepayTransactionManager, ElecsnetTransactionManager, GenericOSMPTransactionManager, QuickPayTransactionManager, RapidaTransactionManager, SberbankTransactionManager, SbrfTransactionManager, UnikassaTransactionManager

      public abstract class MPSTransactionManager
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ACTION_CANCEL`
    `static int` | `ACTION_CHANGE`
    `static int` | `ACTION_CHECK`
    `static int` | `ACTION_PAY`
    `static int` | `ACTION_PAY_ON_CHECK`
    `static int` | `ACTION_STATUS`
    `protected javax.xml.parsers.DocumentBuilder` | `documentBuilder`
    `static int` | `ERROR_MPS_CONTRACT_NOTFOUND`
    `static int` | `ERROR_MPS_DATA`
    `static int` | `ERROR_MPS_DATE`
    `static int` | `ERROR_MPS_DATE_FIELD`
    `static int` | `ERROR_MPS_EDIT_NOT_SUPPORTED`
    `static int` | `ERROR_MPS_HASH`
    `static int` | `ERROR_MPS_ISOFF`
    `static int` | `ERROR_MPS_NUMBER_PATTERN`
    `static int` | `ERROR_MPS_OUT_OF_MONEY`
    `static int` | `ERROR_MPS_PAY_EXIST`
    `static int` | `ERROR_MPS_PAY_NOTEXIST`
    `static int` | `ERROR_MPS_REQUEST`
    `static int` | `ERROR_MPS_SERVER`
    `static int` | `ERROR_MPS_SUM_BIG`
    `static int` | `ERROR_MPS_SUM_SMALL`
    `static int` | `ERROR_MPS_SUM_TOOSMALLORBIG`
    `static int` | `ERROR_MPS_TRANSACTION_ID_FIELD`
    `static int` | `ERROR_MPS_TYPE`
    `protected static org.apache.log4j.Logger` | `log`
    `static int` | `MPS_CYBERPLAT`
    `static int` | `MPS_FROMGATEWAY`
    `static int` | `MPS_OSMP`
    `protected static java.util.regex.Pattern` | `p1`
    `protected static java.util.regex.Pattern` | `p2`
    `protected static java.util.regex.Pattern` | `p3`
    `protected static java.util.regex.Pattern` | `pNumber`
    `static java.lang.String` | `REQUEST_ATTRIBUTE_PARAMETERS`
    `static java.lang.String` | `REQUEST_ATTRIBUTE_PATH_INFO`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `MPSTransactionManager()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Contract` | `actionCheck(MPSRequest request)` action - проверка (поиск) договора, возвращает найденный Contract
    `Transaction` | `addTransaction(java.sql.Connection con, int mid, int mpsId, Conf.MPSSystem system, int cid, java.util.Date time, java.math.BigDecimal sum, java.lang.String transId, java.lang.String rawNumber, int type, java.lang.String paymentComment)` Добавление платежа.
    `Transaction` | `addTransaction(int id, java.sql.Connection con, int mid, int mpsId, Conf.MPSSystem system, int cid, java.util.Date time, java.math.BigDecimal scriptSum, java.math.BigDecimal sum, java.lang.String transId, java.lang.String rawNumber, int type, java.lang.String paymentComment)` Добавление платежа.
    `Transaction` | `addTransaction(int id, java.sql.Connection con, int mid, int mpsId, Conf.MPSSystem system, int cid, java.util.Date time, java.math.BigDecimal sum, java.lang.String transId, java.lang.String rawNumber, int type, java.lang.String paymentComment)` Добавление платежа.
    `protected void` | `cancelPreparedTransaction(java.sql.Connection con, int mid, int mpsId, Conf.MPSSystem system, Transaction transaction)` Отмена платежа, ранее подготовленного методом `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`.
    `void` | `cancelTransaction(java.sql.Connection con, int mid, int mpsId, Conf.MPSSystem system, Transaction transaction)` Отмена платежа если он еще не отменен
    `protected void` | `checkTime(MPSRequest req)`
    `protected void` | `checkValid(Conf.MPSSystem system, MPSRequest mpsRequest, java.sql.Connection con)` Проверка на валидность запроса
    `protected void` | `clearCanceledTransaction(java.sql.Connection con, int mid, int mpsId, Transaction transaction)`
    `protected Transaction` | `executePreparedTransaction(java.sql.Connection con, int mid, Conf.MPSSystem system, Transaction result, java.lang.String paymentComment)` Завершение процедуры платежа - установка статуса `TransactionStatus.PAYMENT_PAYED`, добавление платежа и обновление баланса договора.
    `protected Transaction` | `executePreparedTransaction(java.sql.Connection con, int mid, Conf.MPSSystem system, Transaction result, java.lang.String paymentComment, java.math.BigDecimal sum)` Завершение процедуры платежа - установка статуса `TransactionStatus.PAYMENT_PAYED`, добавление платежа и обновление баланса договора.
    `protected Transaction` | `executePreparedTransaction(java.sql.Connection con, int mid, Conf.MPSSystem system, Transaction result, java.lang.String paymentComment, java.math.BigDecimal scriptSum, java.math.BigDecimal sum)` Завершение процедуры платежа - установка статуса `TransactionStatus.PAYMENT_PAYED`, добавление платежа и обновление баланса договора.
    `protected Contract` | `findContract(java.sql.Connection con, int mid, Conf.MPSSystem system, java.lang.String number, int type)`
    `protected java.lang.String` | `getComment(Conf.MPSSystem system, Conf conf, java.sql.Connection con, Contract contract)`
    `protected java.lang.String` | `getComment(Conf conf, java.sql.Connection con, Contract contract)` Deprecated.
    `protected java.lang.String` | `getContractTitle(java.util.HashMap<java.lang.Integer,java.lang.String> contractTitles, java.sql.PreparedStatement getContractTitlePS, int cid)`
    `java.lang.String` | `getEncoding()`
    `static MPSTransactionManager` | `getInstance(int mpsId, Setup setup, int mid)`
    `protected abstract byte[]` | `getResponse(java.sql.Connection con, Conf.MPSSystem system, MPSResponse response)`
    `protected java.util.Map<java.lang.String,java.lang.String>` | `getResponseAttributes(java.sql.Connection con, Conf.MPSSystem system, MPSResponse response)`
    `protected java.lang.String` | `getTable(java.sql.Connection con, int mid, java.util.Date time)`
    `Transaction` | `getTransactionByTransId(java.sql.Connection con, int mid, int mpsId, java.math.BigInteger transId, java.util.Date time)`
    `Transaction` | `getTransactionByTransId(java.sql.Connection con, int mid, int mpsId, long transId, java.util.Date time)` Получение MPSPayment по транзакции
    `Transaction` | `getTransactionByTransId(java.sql.Connection con, int mid, int mpsId, java.lang.String transId, java.util.Date time)` Получение MPSPayment по транзакции
    `protected Transaction` | `getTransactionFromRS(java.sql.ResultSet rs)` Получение MPSPayment из ResultSet
    `java.util.List<Transaction>` | `getTransactionList(java.sql.Connection con, int mid, int mpsId, java.util.Calendar from, java.util.Calendar to, int paymentTypeId, java.lang.String status)` Получение списка платежей за произвольный период с возможностью фильтрации по типу платежа (такая возможность используется, например, в платежной системе Paynet)
    `java.util.List<Transaction>` | `getTransactionList(java.sql.Connection con, int mid, int mpsId, Conf conf, java.util.Calendar from, java.util.Calendar until, boolean onlyPayed)` Получение списка платежей за период (Период в пределах одного месяца)
    `java.util.List<Transaction>` | `getTransactionList(java.sql.Connection con, int mid, int cid, int yy, int mm)` Получение списка платежей для договора за месяц (для web) upd 15.09 получение списка платежей всех систем
    `java.util.List<Transaction>` | `getTransactionList(Setup setup, java.sql.Connection con, int mid, int mpsId, java.util.Calendar from, java.util.Calendar until, boolean onlyPayed)`
    `java.util.List<Transaction>` | `getTransactionListForDay(java.sql.Connection con, int mid, int mpsId, java.util.Calendar date)` Получение списка платежей за один день
    `protected abstract java.util.List<Transaction>` | `getTransactionListFromFile(Conf.MPSSystem system, java.lang.String file)`
    `protected java.util.List<Transaction>` | `getTransactionListFromFileByConfig(Conf.MPSSystem system, java.lang.String fileString)`
    `protected java.util.List<Transaction>` | `getTransactionListFromFileByPattern(java.util.regex.Pattern pattern, java.util.Map<java.lang.String,java.lang.Integer> patternOrder, java.lang.String timeFormat, boolean osmpPrefix, java.lang.String fileString)`
    `int` | `getUserLogin(java.sql.Connection con, int mid, int cid)`
    `java.lang.String` | `getUserLoginFormatted(Setup setup, java.sql.Connection con, int mid, int cid)`
    `static void` | `init(Setup setup)`
    `protected void` | `onPayment(Conf.MPSSystem system, Payment payment)`
    `protected java.math.BigInteger` | `parseBigInteger(java.lang.String value)`
    `protected abstract MPSRequest` | `parseRequest(java.sql.Connection con, int mid, int mpsId, Conf.MPSSystem system, javax.servlet.http.HttpServletRequest request)` Парсинг запроса от системы
    `protected Transaction` | `prepareTransaction(java.sql.Connection con, int mid, int mpsId, int cid, java.util.Date time, java.math.BigDecimal sum, java.math.BigInteger transId, java.lang.String rawNumber, int type)` Описание параметров метода смотри у метода `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
    `protected Transaction` | `prepareTransaction(java.sql.Connection con, int mid, int mpsId, int cid, java.util.Date time, java.math.BigDecimal sum, long transId, java.lang.String rawNumber, int type)` Описание параметров метода смотри у метода `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
    `protected Transaction` | `prepareTransaction(java.sql.Connection con, int mid, int mpsId, int cid, java.util.Date time, java.math.BigDecimal sum, java.lang.String transId, java.lang.String rawNumber, int type)` Подготовка к проведению платежа.
    `protected void` | `preProcess(Conf.MPSSystem system, MPSRequest mpsRequest, java.sql.Connection con)`
    `protected abstract void` | `processError(MPSException ex, MPSResponse response)` Обработка ошибки
    `static ProcessRegister` | `processRegister(int mpsId, java.lang.String file, java.lang.String fileName, java.util.Calendar from, java.util.Calendar until, Setup setup, java.sql.Connection con, int mid)`
    `protected ProcessRegister` | `processRegister(MPSTransactionManager paymentManager, java.sql.Connection con, int mid, int mpsId, Conf conf, java.lang.String fileString, java.util.Calendar from, java.util.Calendar until)` Обработка реестра за период.
    `protected abstract byte[]` | `processRequest(java.sql.Connection con, int mid, int mpsId, Conf conf, Conf.MPSSystem system, javax.servlet.http.HttpServletRequest httpRequest)` Обработка запроса от системы
    `static byte[]` | `processRequest(javax.servlet.http.HttpServletRequest request, Setup setup, java.sql.Connection con, int mid, int mpsId, java.util.concurrent.atomic.AtomicReference<Conf.MPSSystem> mpsSystem)` В зависимости от запроса нужным менеджером обрабатывает запрос
    `void` | `reviseAddTransactions(java.sql.Connection con, int mid, int mpsId, Setup setup, org.w3c.dom.Document payments)` Добавление платежей которые нашлись в реестре но не было в базе
    `void` | `reviseCancelTransactions(java.sql.Connection con, int mid, int mpsId, org.w3c.dom.Document payments)` Отмена платежей которых небыло в реестре
    `void` | `reviseRestoreTransactions(java.sql.Connection con, int mid, int mpsId, Setup setup, org.w3c.dom.Document payments)` Восстановление платежей, которые в базе были отменены, но в реестре есть
    `void` | `searchTransactionList(SearchResult<Transaction> searchResult, int systemId, int contractId, java.lang.String status, java.sql.Connection con, int moduleId)` Получение списка Transaction за период
    `void` | `setUserLogin(Setup setup, java.sql.Connection con, int mid, int cid, java.lang.String _login)`
    `protected void` | `systemAccountAdd(java.sql.Connection con, Conf.MPSSystem system, java.util.Date time, java.math.BigDecimal sum)`
    `protected void` | `systemAccountDelete(java.sql.Connection con, int mid, Conf.MPSSystem system, java.util.Date time, java.math.BigDecimal sum)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### REQUEST_ATTRIBUTE_PATH_INFO

          public static final java.lang.String REQUEST_ATTRIBUTE_PATH_INFO

      See Also:
        Constant Field Values

    - #### REQUEST_ATTRIBUTE_PARAMETERS

          public static final java.lang.String REQUEST_ATTRIBUTE_PARAMETERS

      See Also:
        Constant Field Values

    - #### log

          protected static org.apache.log4j.Logger log

    - #### MPS_FROMGATEWAY

          public static final int MPS_FROMGATEWAY

      See Also:
        Constant Field Values

    - #### MPS_CYBERPLAT

          public static final int MPS_CYBERPLAT

      See Also:
        Constant Field Values

    - #### MPS_OSMP

          public static final int MPS_OSMP

      See Also:
        Constant Field Values

    - #### ACTION_CHECK

          public static final int ACTION_CHECK

      See Also:
        Constant Field Values

    - #### ACTION_PAY

          public static final int ACTION_PAY

      See Also:
        Constant Field Values

    - #### ACTION_STATUS

          public static final int ACTION_STATUS

      See Also:
        Constant Field Values

    - #### ACTION_CANCEL

          public static final int ACTION_CANCEL

      See Also:
        Constant Field Values

    - #### ACTION_CHANGE

          public static final int ACTION_CHANGE

      See Also:
        Constant Field Values

    - #### ACTION_PAY_ON_CHECK

          public static final int ACTION_PAY_ON_CHECK

      See Also:
        Constant Field Values

    - #### ERROR_MPS_SERVER

          public static final int ERROR_MPS_SERVER

      See Also:
        Constant Field Values

    - #### ERROR_MPS_REQUEST

          public static final int ERROR_MPS_REQUEST

      See Also:
        Constant Field Values

    - #### ERROR_MPS_CONTRACT_NOTFOUND

          public static final int ERROR_MPS_CONTRACT_NOTFOUND

      See Also:
        Constant Field Values

    - #### ERROR_MPS_PAY_EXIST

          public static final int ERROR_MPS_PAY_EXIST

      See Also:
        Constant Field Values

    - #### ERROR_MPS_PAY_NOTEXIST

          public static final int ERROR_MPS_PAY_NOTEXIST

      See Also:
        Constant Field Values

    - #### ERROR_MPS_DATE

          public static final int ERROR_MPS_DATE

      See Also:
        Constant Field Values

    - #### ERROR_MPS_SUM_TOOSMALLORBIG

          public static final int ERROR_MPS_SUM_TOOSMALLORBIG

      See Also:
        Constant Field Values

    - #### ERROR_MPS_ISOFF

          public static final int ERROR_MPS_ISOFF

      See Also:
        Constant Field Values

    - #### ERROR_MPS_HASH

          public static final int ERROR_MPS_HASH

      See Also:
        Constant Field Values

    - #### ERROR_MPS_EDIT_NOT_SUPPORTED

          public static final int ERROR_MPS_EDIT_NOT_SUPPORTED

      See Also:
        Constant Field Values

    - #### ERROR_MPS_TYPE

          public static final int ERROR_MPS_TYPE

      See Also:
        Constant Field Values

    - #### ERROR_MPS_NUMBER_PATTERN

          public static final int ERROR_MPS_NUMBER_PATTERN

      See Also:
        Constant Field Values

    - #### ERROR_MPS_TRANSACTION_ID_FIELD

          public static final int ERROR_MPS_TRANSACTION_ID_FIELD

      See Also:
        Constant Field Values

    - #### ERROR_MPS_DATE_FIELD

          public static final int ERROR_MPS_DATE_FIELD

      See Also:
        Constant Field Values

    - #### ERROR_MPS_OUT_OF_MONEY

          public static final int ERROR_MPS_OUT_OF_MONEY

      See Also:
        Constant Field Values

    - #### ERROR_MPS_DATA

          public static final int ERROR_MPS_DATA

      See Also:
        Constant Field Values

    - #### ERROR_MPS_SUM_SMALL

          public static final int ERROR_MPS_SUM_SMALL

      See Also:
        Constant Field Values

    - #### ERROR_MPS_SUM_BIG

          public static final int ERROR_MPS_SUM_BIG

      See Also:
        Constant Field Values

    - #### pNumber

          protected static final java.util.regex.Pattern pNumber

    - #### p1

          protected static final java.util.regex.Pattern p1

    - #### p2

          protected static final java.util.regex.Pattern p2

    - #### p3

          protected static final java.util.regex.Pattern p3

    - #### documentBuilder

          protected final javax.xml.parsers.DocumentBuilder documentBuilder

  - ### Constructor Detail

    - #### MPSTransactionManager

          protected MPSTransactionManager()

  - ### Method Detail

    - #### findContract

          protected final Contract findContract(java.sql.Connection con,
                                                int mid,
                                                Conf.MPSSystem system,
                                                java.lang.String number,
                                                int type)
                                         throws MPSException

      Throws:
        `MPSException`

    - #### getContractTitle

          protected final java.lang.String getContractTitle(java.util.HashMap<java.lang.Integer,java.lang.String> contractTitles,
                                                            java.sql.PreparedStatement getContractTitlePS,
                                                            int cid)

    - #### processRequest

          public static byte[] processRequest(javax.servlet.http.HttpServletRequest request,
                                              Setup setup,
                                              java.sql.Connection con,
                                              int mid,
                                              int mpsId,
                                              java.util.concurrent.atomic.AtomicReference<Conf.MPSSystem> mpsSystem)
                                       throws ru.bitel.bgbilling.modules.mps.server.RequestProcessException

      В зависимости от запроса нужным менеджером обрабатывает запрос
      Throws:
        `ru.bitel.bgbilling.modules.mps.server.RequestProcessException`

    - #### getInstance

          public static MPSTransactionManager getInstance(int mpsId,
                                                          Setup setup,
                                                          int mid)

    - #### processRequest

          protected abstract byte[] processRequest(java.sql.Connection con,
                                                   int mid,
                                                   int mpsId,
                                                   Conf conf,
                                                   Conf.MPSSystem system,
                                                   javax.servlet.http.HttpServletRequest httpRequest)

      Обработка запроса от системы

    - #### parseRequest

          protected abstract MPSRequest parseRequest(java.sql.Connection con,
                                                     int mid,
                                                     int mpsId,
                                                     Conf.MPSSystem system,
                                                     javax.servlet.http.HttpServletRequest request)
                                              throws MPSException

      Парсинг запроса от системы
      Throws:
        `MPSException`

    - #### processError

          protected abstract void processError(MPSException ex,
                                               MPSResponse response)

      Обработка ошибки

    - #### checkValid

          protected void checkValid(Conf.MPSSystem system,
                                    MPSRequest mpsRequest,
                                    java.sql.Connection con)
                             throws MPSException

      Проверка на валидность запроса
      Throws:
        `MPSException`

    - #### preProcess

          protected void preProcess(Conf.MPSSystem system,
                                    MPSRequest mpsRequest,
                                    java.sql.Connection con)
                             throws MPSException

      Throws:
        `MPSException`

    - #### onPayment

          protected void onPayment(Conf.MPSSystem system,
                                   Payment payment)

    - #### checkTime

          protected final void checkTime(MPSRequest req)
                                  throws MPSException

      Throws:
        `MPSException`

    - #### parseBigInteger

          protected java.math.BigInteger parseBigInteger(java.lang.String value)

    - #### getTable

          protected final java.lang.String getTable(java.sql.Connection con,
                                                    int mid,
                                                    java.util.Date time)
                                             throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### addTransaction

          public final Transaction addTransaction(java.sql.Connection con,
                                                  int mid,
                                                  int mpsId,
                                                  Conf.MPSSystem system,
                                                  int cid,
                                                  java.util.Date time,
                                                  java.math.BigDecimal sum,
                                                  java.lang.String transId,
                                                  java.lang.String rawNumber,
                                                  int type,
                                                  java.lang.String paymentComment)
                                           throws java.lang.Exception

      Добавление платежа.
      Parameters:
        `con` - соединение с БД
        `mid` - код модуля MPS
        `mpsId` - код платежной системы в конфигурации модуля MPS
        `system` - набор настроек платежной системы
        `cid` - код договора
        `time` - дата/время платежа
        `sum` - сумма платежа, пришедшая в запросе от платежной системы
        `transId` - код транзакции на стороне платежной системы
        `rawNumber` - идентификатор абонента, который присылает paynet в запросе
        `type` - тип поиска.
        `paymentComment` - комментарий платежа
      Returns:
        платеж mps, добавленный в БД.
      Throws:
        `java.lang.Exception`

    - #### addTransaction

          public final Transaction addTransaction(int id,
                                                  java.sql.Connection con,
                                                  int mid,
                                                  int mpsId,
                                                  Conf.MPSSystem system,
                                                  int cid,
                                                  java.util.Date time,
                                                  java.math.BigDecimal sum,
                                                  java.lang.String transId,
                                                  java.lang.String rawNumber,
                                                  int type,
                                                  java.lang.String paymentComment)
                                           throws java.lang.Exception

      Добавление платежа.
      Parameters:
        `id` -
        `con` - соединение с БД
        `mid` - код модуля MPS
        `mpsId` - код платежной системы в конфигурации модуля MPS
        `system` - набор настроек платежной системы
        `cid` - код договора
        `time` - дата/время платежа
        `sum` - сумма платежа, пришедшая в запросе от платежной системы
        `transId` - код транзакции на стороне платежной системы
        `rawNumber` - идентификатор абонента, который присылает paynet в запросе
        `type` - тип поиска.
        `paymentComment` - комментарий платежа
      Returns:
        платеж mps, добавленный в БД.
      Throws:
        `java.lang.Exception`

    - #### addTransaction

          public Transaction addTransaction(int id,
                                            java.sql.Connection con,
                                            int mid,
                                            int mpsId,
                                            Conf.MPSSystem system,
                                            int cid,
                                            java.util.Date time,
                                            java.math.BigDecimal scriptSum,
                                            java.math.BigDecimal sum,
                                            java.lang.String transId,
                                            java.lang.String rawNumber,
                                            int type,
                                            java.lang.String paymentComment)
                                     throws java.lang.Exception

      Добавление платежа.
      Parameters:
        `id` -
        `con` - соединение с БД
        `mid` - код модуля MPS
        `mpsId` - код платежной системы в конфигурации модуля MPS
        `system` - набор настроек платежной системы
        `cid` - код договора
        `time` - дата/время платежа
        `scriptSum` - сумма платежа, полученная в скрипте по событию `MPSBeforePaymentEvent`.
        `sum` - сумма платежа, пришедшая в запросе от платежной системы
        `transId` - код транзакции на стороне платежной системы
        `rawNumber` - идентификатор абонента, который присылает paynet в запросе
        `type` - тип поиска.
        `paymentComment` - комментарий платежа
      Returns:
        платеж mps, добавленный в БД.
      Throws:
        `java.lang.Exception`

    - #### prepareTransaction

          protected final Transaction prepareTransaction(java.sql.Connection con,
                                                         int mid,
                                                         int mpsId,
                                                         int cid,
                                                         java.util.Date time,
                                                         java.math.BigDecimal sum,
                                                         long transId,
                                                         java.lang.String rawNumber,
                                                         int type)
                                                  throws java.lang.Exception

      Описание параметров метода смотри у метода `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
      Throws:
        `java.lang.Exception`

    - #### prepareTransaction

          protected final Transaction prepareTransaction(java.sql.Connection con,
                                                         int mid,
                                                         int mpsId,
                                                         int cid,
                                                         java.util.Date time,
                                                         java.math.BigDecimal sum,
                                                         java.math.BigInteger transId,
                                                         java.lang.String rawNumber,
                                                         int type)
                                                  throws java.lang.Exception

      Описание параметров метода смотри у метода `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
      Throws:
        `java.lang.Exception`

    - #### prepareTransaction

          protected final Transaction prepareTransaction(java.sql.Connection con,
                                                         int mid,
                                                         int mpsId,
                                                         int cid,
                                                         java.util.Date time,
                                                         java.math.BigDecimal sum,
                                                         java.lang.String transId,
                                                         java.lang.String rawNumber,
                                                         int type)
                                                  throws java.lang.Exception

      Подготовка к проведению платежа. Метод добавляет платеж в таблицу mps_payment со статусом `TransactionStatus.PAYMENT_NOT_PAYED`. Баланс договора не меняется.
      Parameters:
        `con` - экземпляр соединения с БД.
        `mid` - код модуля mps.
        `mpsId` - код платежной системы, по которой проводится платеж. Настраивается в конфигурации модуля mps.
        `cid` - код договора, на который принимается платеж.
        `time` - время совершения платежа, приходящее от платежной системы.
        `sum` - сумма платежа, пришедшая в запросе от платежной системы.
        `transId` - код транзакции на стороне платежной системы.
        `rawNumber` - идентификатор абонента, пришедший в запросе от платежной системы.
        `type` - тип поиска
      Returns:
        платеж в виде сущности `Transaction` со статусом `#PAYMENT_NOT_PAYED`.
      Throws:
        `java.lang.Exception`

    - #### executePreparedTransaction

          protected final Transaction executePreparedTransaction(java.sql.Connection con,
                                                                 int mid,
                                                                 Conf.MPSSystem system,
                                                                 Transaction result,
                                                                 java.lang.String paymentComment)
                                                          throws java.lang.Exception

      Завершение процедуры платежа - установка статуса `TransactionStatus.PAYMENT_PAYED`, добавление платежа и обновление баланса договора.
      Parameters:
        `con` - экземпляр соединения с БД
        `mid` - код модуля MPS
        `system` - конфигурация платежной системы
        `result` - экземпляр платежа, добавленный методом `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
        `paymentComment` - комментарий платежа
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException` - См. `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
        `java.lang.Exception`

    - #### executePreparedTransaction

          protected final Transaction executePreparedTransaction(java.sql.Connection con,
                                                                 int mid,
                                                                 Conf.MPSSystem system,
                                                                 Transaction result,
                                                                 java.lang.String paymentComment,
                                                                 java.math.BigDecimal sum)
                                                          throws ru.bitel.bgbilling.common.BGException

      Завершение процедуры платежа - установка статуса `TransactionStatus.PAYMENT_PAYED`, добавление платежа и обновление баланса договора.
      Parameters:
        `con` - экземпляр соединения с БД
        `mid` - код модуля MPS
        `system` - конфигурация платежной системы
        `result` - экземпляр платежа, добавленный методом `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
        `paymentComment` - комментарий платежа
        `sum` - оригинальная сумма платежа, пришедшая в запросе от платежной системы.
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException` - См. `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`

    - #### executePreparedTransaction

          protected final Transaction executePreparedTransaction(java.sql.Connection con,
                                                                 int mid,
                                                                 Conf.MPSSystem system,
                                                                 Transaction result,
                                                                 java.lang.String paymentComment,
                                                                 java.math.BigDecimal scriptSum,
                                                                 java.math.BigDecimal sum)
                                                          throws ru.bitel.bgbilling.common.BGException

      Завершение процедуры платежа - установка статуса `TransactionStatus.PAYMENT_PAYED`, добавление платежа и обновление баланса договора.
      Parameters:
        `con` - экземпляр соединения с БД
        `mid` - код модуля MPS
        `system` - конфигурация платежной системы
        `result` - экземпляр платежа, добавленный методом `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
        `paymentComment` - комментарий платежа
        `scriptSum` - сумма платежа, которая могла быть изменена скриптом на событие `MPSBeforePaymentEvent`
        `sum` - оригинальная сумма платежа, пришедшая в запросе от платежной системы.
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException` - См. `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`

    - #### cancelPreparedTransaction

          protected final void cancelPreparedTransaction(java.sql.Connection con,
                                                         int mid,
                                                         int mpsId,
                                                         Conf.MPSSystem system,
                                                         Transaction transaction)
                                                  throws java.lang.Exception

      Отмена платежа, ранее подготовленного методом `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`. Выставляется статус `TransactionStatus.PAYMENT_CANCELED`. Метод срабатывает только тогда, когда статус платежа не `TransactionStatus.PAYMENT_CANCELED`.
      Parameters:
        `con` - экземлпяр соединения с БД
        `mid` - код модуля MPS
        `mpsId` - код платежной системы в конфигурации модуля MPS
        `system` - набор настроек платежной системы
        `transaction` - экземпляр платежа, добавленный методом `prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int)`
      Throws:
        `java.lang.Exception`

    - #### getTransactionByTransId

          public final Transaction getTransactionByTransId(java.sql.Connection con,
                                                           int mid,
                                                           int mpsId,
                                                           long transId,
                                                           java.util.Date time)
                                                    throws java.lang.Exception

      Получение MPSPayment по транзакции
      Parameters:
        `transId` -
      Returns:
      Throws:
        `java.lang.Exception`

    - #### getTransactionByTransId

          public final Transaction getTransactionByTransId(java.sql.Connection con,
                                                           int mid,
                                                           int mpsId,
                                                           java.math.BigInteger transId,
                                                           java.util.Date time)
                                                    throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### getTransactionByTransId

          public final Transaction getTransactionByTransId(java.sql.Connection con,
                                                           int mid,
                                                           int mpsId,
                                                           java.lang.String transId,
                                                           java.util.Date time)
                                                    throws java.lang.Exception

      Получение MPSPayment по транзакции
      Parameters:
        `transId` -
      Returns:
      Throws:
        `java.lang.Exception`

    - #### cancelTransaction

          public void cancelTransaction(java.sql.Connection con,
                                        int mid,
                                        int mpsId,
                                        Conf.MPSSystem system,
                                        Transaction transaction)
                                 throws java.lang.Exception

      Отмена платежа если он еще не отменен
      Throws:
        `java.lang.Exception`

    - #### clearCanceledTransaction

          protected void clearCanceledTransaction(java.sql.Connection con,
                                                  int mid,
                                                  int mpsId,
                                                  Transaction transaction)
                                           throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### searchTransactionList

          public void searchTransactionList(SearchResult<Transaction> searchResult,
                                            int systemId,
                                            int contractId,
                                            java.lang.String status,
                                            java.sql.Connection con,
                                            int moduleId)

      Получение списка Transaction за период

    - #### getTransactionListForDay

          public final java.util.List<Transaction> getTransactionListForDay(java.sql.Connection con,
                                                                            int mid,
                                                                            int mpsId,
                                                                            java.util.Calendar date)
                                                                     throws java.lang.Exception

      Получение списка платежей за один день
      Parameters:
        `date` -
      Returns:
      Throws:
        `java.lang.Exception`

    - #### getTransactionList

          public java.util.List<Transaction> getTransactionList(java.sql.Connection con,
                                                                int mid,
                                                                int cid,
                                                                int yy,
                                                                int mm)

      Получение списка платежей для договора за месяц (для web) upd 15.09 получение списка платежей всех систем
      Parameters:
        `cid` -
        `yy` -
        `mm` - is 0 based!
      Returns:

    - #### getTransactionList

          public java.util.List<Transaction> getTransactionList(Setup setup,
                                                                java.sql.Connection con,
                                                                int mid,
                                                                int mpsId,
                                                                java.util.Calendar from,
                                                                java.util.Calendar until,
                                                                boolean onlyPayed)

    - #### getTransactionList

          public java.util.List<Transaction> getTransactionList(java.sql.Connection con,
                                                                int mid,
                                                                int mpsId,
                                                                Conf conf,
                                                                java.util.Calendar from,
                                                                java.util.Calendar until,
                                                                boolean onlyPayed)

      Получение списка платежей за период (Период в пределах одного месяца)
      Parameters:
        `from` -
        `until` -
      Returns:

    - #### getTransactionList

          public java.util.List<Transaction> getTransactionList(java.sql.Connection con,
                                                                int mid,
                                                                int mpsId,
                                                                java.util.Calendar from,
                                                                java.util.Calendar to,
                                                                int paymentTypeId,
                                                                java.lang.String status)
                                                         throws ru.bitel.bgbilling.common.BGException

      Получение списка платежей за произвольный период с возможностью фильтрации по типу платежа (такая возможность используется, например, в платежной системе Paynet)
      Parameters:
        `con` - экземпляр соединения с БД
        `mid` - код модуля MPS
        `mpsId` - код платежной системы, определяемый в конфигурации модуля MPS
        `from` - начало периода, с которого выгружаютя платежи
        `to` - конец период, по который выгружаются платежи
        `paymentTypeId` - код типа платежа
        `status` - статус платежа
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getTransactionFromRS

          protected final Transaction getTransactionFromRS(java.sql.ResultSet rs)
                                                    throws java.sql.SQLException

      Получение MPSPayment из ResultSet
      Parameters:
        `rs` -
      Returns:
      Throws:
        `java.sql.SQLException`

    - #### actionCheck

          protected Contract actionCheck(MPSRequest request)
                                  throws MPSException

      action - проверка (поиск) договора, возвращает найденный Contract
      Parameters:
        `request` -
      Returns:
      Throws:
        `MPSException`

    - #### processRegister

          public static ProcessRegister processRegister(int mpsId,
                                                        java.lang.String file,
                                                        java.lang.String fileName,
                                                        java.util.Calendar from,
                                                        java.util.Calendar until,
                                                        Setup setup,
                                                        java.sql.Connection con,
                                                        int mid)
                                                 throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getTransactionListFromFileByConfig

          protected final java.util.List<Transaction> getTransactionListFromFileByConfig(Conf.MPSSystem system,
                                                                                         java.lang.String fileString)

    - #### getTransactionListFromFileByPattern

          protected final java.util.List<Transaction> getTransactionListFromFileByPattern(java.util.regex.Pattern pattern,
                                                                                          java.util.Map<java.lang.String,java.lang.Integer> patternOrder,
                                                                                          java.lang.String timeFormat,
                                                                                          boolean osmpPrefix,
                                                                                          java.lang.String fileString)

    - #### processRegister

          protected ProcessRegister processRegister(MPSTransactionManager paymentManager,
                                                    java.sql.Connection con,
                                                    int mid,
                                                    int mpsId,
                                                    Conf conf,
                                                    java.lang.String fileString,
                                                    java.util.Calendar from,
                                                    java.util.Calendar until)
                                             throws ru.bitel.bgbilling.common.BGException

      Обработка реестра за период.
      Parameters:
        `fileString` - реестр
        `from` -
        `until` -
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### reviseCancelTransactions

          public void reviseCancelTransactions(java.sql.Connection con,
                                               int mid,
                                               int mpsId,
                                               org.w3c.dom.Document payments)
                                        throws ru.bitel.bgbilling.common.BGException

      Отмена платежей которых небыло в реестре
      Parameters:
        `payments` -
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### reviseAddTransactions

          public void reviseAddTransactions(java.sql.Connection con,
                                            int mid,
                                            int mpsId,
                                            Setup setup,
                                            org.w3c.dom.Document payments)

      Добавление платежей которые нашлись в реестре но не было в базе
      Parameters:
        `payments` -

    - #### reviseRestoreTransactions

          public void reviseRestoreTransactions(java.sql.Connection con,
                                                int mid,
                                                int mpsId,
                                                Setup setup,
                                                org.w3c.dom.Document payments)
                                         throws ru.bitel.bgbilling.common.BGException

      Восстановление платежей, которые в базе были отменены, но в реестре есть
      Parameters:
        `payments` -
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getTransactionListFromFile

          protected abstract java.util.List<Transaction> getTransactionListFromFile(Conf.MPSSystem system,
                                                                                    java.lang.String file)

    - #### getUserLogin

          public int getUserLogin(java.sql.Connection con,
                                  int mid,
                                  int cid)

    - #### getUserLoginFormatted

          public java.lang.String getUserLoginFormatted(Setup setup,
                                                        java.sql.Connection con,
                                                        int mid,
                                                        int cid)

    - #### setUserLogin

          public void setUserLogin(Setup setup,
                                   java.sql.Connection con,
                                   int mid,
                                   int cid,
                                   java.lang.String _login)
                            throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getEncoding

          public java.lang.String getEncoding()

    - #### getResponse

          protected abstract byte[] getResponse(java.sql.Connection con,
                                                Conf.MPSSystem system,
                                                MPSResponse response)

    - #### init

          public static void init(Setup setup)

    - #### getComment

          @Deprecated
          protected final java.lang.String getComment(Conf conf,
                                                                  java.sql.Connection con,
                                                                  Contract contract)

      Deprecated.

    - #### getComment

          protected final java.lang.String getComment(Conf.MPSSystem system,
                                                      Conf conf,
                                                      java.sql.Connection con,
                                                      Contract contract)

    - #### systemAccountAdd

          protected void systemAccountAdd(java.sql.Connection con,
                                          Conf.MPSSystem system,
                                          java.util.Date time,
                                          java.math.BigDecimal sum)
                                   throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### systemAccountDelete

          protected void systemAccountDelete(java.sql.Connection con,
                                             int mid,
                                             Conf.MPSSystem system,
                                             java.util.Date time,
                                             java.math.BigDecimal sum)
                                      throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getResponseAttributes

          protected java.util.Map<java.lang.String,java.lang.String> getResponseAttributes(java.sql.Connection con,
                                                                                           Conf.MPSSystem system,
                                                                                           MPSResponse response)