Class MPSTransactionManager

java.lang.Object
ru.bitel.bgbilling.modules.mps.server.bean.protocol.MPSTransactionManager
Direct Known Subclasses:
BiSysTransactionManager, CitiPayTransactionManager, ClickTransactionManager, ComepayTransactionManager, CPTransactionManager, EasyPayTransactionManager, ElecsnetAbstractTransactionManager, EmpayTransactionManager, EPortTransactionManager, FreecashTransactionManager, GenericOSMPTransactionManager, KaspiTransactionManager, MbankTransactionManager, OptimaPlusTransactionManager, OSMPTransactionManager, Payfon24TransactionManager, PaynetTransactionManager, PegasTransactionManager, QuickPayTransactionManager, RapidaOldTransactionManager, RapidaTransactionManager, SberbankTransactionManager, SbrfTransactionManager, SfourAlternativeTransactionManager, UepcTransactionManager, UnikassaTransactionManager, VtbTransactionManager, XPlatTransactionManager

public abstract class MPSTransactionManager
extends java.lang.Object
  • Field Summary

    Fields
    Modifier and Type Field 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  
    static java.lang.String KEY_RESPONSE_PARAMETERS  
    protected static org.apache.logging.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 Description
    protected MPSTransactionManager()  
  • Method Summary

    Modifier and Type Method Description
    protected Contract actionCheck​(MPSRequest request)
    action - проверка (поиск) договора, возвращает найденный Contract
    Transaction addTransaction​(int id, java.sql.Connection con, int moduleId, java.lang.String mpsId, Conf.MPSSystem system, int contractId, 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 moduleId, java.lang.String mpsId, Conf.MPSSystem system, int contractId, 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​(java.sql.Connection con, int moduleId, java.lang.String mpsId, Conf.MPSSystem system, int contractId, 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 moduleId, java.lang.String mpsId, Conf.MPSSystem system, Transaction transaction)
    Отмена платежа, ранее подготовленного методом #prepareTransaction(Connection, int, int, int, Date, BigDecimal, String, String, int).
    void cancelTransaction​(java.sql.Connection con, int moduleId, java.lang.String mpsId, Conf.MPSSystem system, Transaction transaction)
    Отмена платежа если он еще не отменен
    protected void checkTime​(MPSRequest mpsRequest)  
    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 void createTemporaryTable​(java.sql.Connection con, java.lang.String tableName)  
    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 moduleId, 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 getContractTitle​(java.util.HashMap<java.lang.Integer,​java.lang.String> contractTitles, java.sql.PreparedStatement getContractTitlePS, int contractId)  
    java.lang.String getDefaultEncoding()  
    java.lang.String getEncoding()  
    static MPSTransactionManager getInstance​(java.lang.String mpsId, Setup setup, int moduleId)  
    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 moduleId, java.util.Date time)  
    Transaction getTransactionByTransId​(java.sql.Connection con, int moduleId, java.lang.String mpsId, long transId, java.util.Date time)
    Получение MPSPayment по транзакции
    Transaction getTransactionByTransId​(java.sql.Connection con, int mid, java.lang.String mpsId, java.lang.String transId, java.util.Date time)
    Получение MPSPayment по транзакции
    Transaction getTransactionByTransId​(java.sql.Connection con, int moduleId, java.lang.String mpsId, java.math.BigInteger transId, java.util.Date time)  
    protected Transaction getTransactionFromRS​(java.sql.ResultSet rs)
    Получение MPSPayment из ResultSet
    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​(java.sql.Connection con, int moduleId, java.lang.String 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, java.lang.String mpsId, Conf conf, java.util.Calendar from, java.util.Calendar until, boolean onlyPayed)
    Получение списка платежей за период (Период в пределах одного месяца)
    java.util.List<Transaction> getTransactionList​(Setup setup, java.sql.Connection con, int moduleId, java.lang.String 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)  
    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 moduleId, java.lang.String mpsId, Conf.MPSSystem system, javax.servlet.http.HttpServletRequest request)
    Парсинг запроса от системы
    protected Transaction prepareTransaction​(java.sql.Connection con, int moduleId, java.lang.String mpsId, int contractId, 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 moduleId, java.lang.String mpsId, int cid, java.util.Date time, java.math.BigDecimal sum, java.lang.String transId, java.lang.String rawNumber, int type)
    Подготовка к проведению платежа.
    protected Transaction prepareTransaction​(java.sql.Connection con, int moduleId, java.lang.String 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 void preProcess​(Conf.MPSSystem system, MPSRequest mpsRequest, java.sql.Connection con)  
    protected abstract void processError​(MPSException ex, MPSResponse response)
    Обработка ошибки
    static ProcessRegister processRegister​(java.lang.String mpsId, java.lang.String file, java.lang.String fileName, java.util.Calendar from, java.util.Calendar until, Setup setup, java.sql.Connection con, int moduleId)  
    protected ProcessRegister processRegister​(MPSTransactionManager paymentManager, java.sql.Connection con, int moduleId, java.lang.String mpsId, Conf conf, java.lang.String fileString, java.util.Calendar from, java.util.Calendar until)
    Обработка реестра за период.
    protected abstract byte[] processRequest​(java.sql.Connection con, int moduleId, java.lang.String 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 moduleId, java.lang.String mpsId, java.util.concurrent.atomic.AtomicReference<Conf.MPSSystem> mpsSystem)
    В зависимости от запроса нужным менеджером обрабатывает запрос
    protected void processResponseEvent​(MPSResponse response, org.w3c.dom.Element responseElement)
    Создание и отправка синхронного события ДО ответа платёжной системе.
    void reviseAddTransactions​(java.sql.Connection con, int mid, java.lang.String mpsId, Setup setup, org.w3c.dom.Document payments)
    Добавление платежей которые нашлись в реестре но не было в базе
    void reviseCancelTransactions​(java.sql.Connection con, int moduleId, java.lang.String mpsId, org.w3c.dom.Document payments)
    Отмена платежей которых небыло в реестре
    void reviseRestoreTransactions​(java.sql.Connection con, int mid, java.lang.String mpsId, Setup setup, org.w3c.dom.Document payments)
    Восстановление платежей, которые в базе были отменены, но в реестре есть
    void searchTransactionList​(SearchResult<Transaction> searchResult, java.lang.String systemId, int contractId, java.lang.String status, java.sql.Connection con, int moduleId)
    Получение списка Transaction за период
    void setEncoding​(java.lang.String encoding)  
    static void setPrivateKey​(java.security.PrivateKey privateKey)  
    protected void setResponseParameters​(MPSResponse response, org.w3c.dom.Element responseElement)  
    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 Details

    • 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.logging.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
    • KEY_RESPONSE_PARAMETERS

      public static final java.lang.String KEY_RESPONSE_PARAMETERS
      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 Details

    • MPSTransactionManager

      protected MPSTransactionManager()
  • Method Details

    • findContract

      protected final Contract findContract​(java.sql.Connection con, int moduleId, 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 contractId)
    • setPrivateKey

      public static void setPrivateKey​(java.security.PrivateKey privateKey)
    • processRequest

      public static byte[] processRequest​(javax.servlet.http.HttpServletRequest request, Setup setup, java.sql.Connection con, int moduleId, java.lang.String 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​(java.lang.String mpsId, Setup setup, int moduleId)
    • processRequest

      protected abstract byte[] processRequest​(java.sql.Connection con, int moduleId, java.lang.String mpsId, Conf conf, Conf.MPSSystem system, javax.servlet.http.HttpServletRequest httpRequest)
      Обработка запроса от системы
    • parseRequest

      protected abstract MPSRequest parseRequest​(java.sql.Connection con, int moduleId, java.lang.String 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 mpsRequest) 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 moduleId, java.util.Date time) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • createTemporaryTable

      protected final void createTemporaryTable​(java.sql.Connection con, java.lang.String tableName) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • addTransaction

      public final Transaction addTransaction​(java.sql.Connection con, int moduleId, java.lang.String mpsId, Conf.MPSSystem system, int contractId, 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 - соединение с БД
      moduleId - код модуля MPS
      mpsId - код платежной системы в конфигурации модуля MPS
      system - набор настроек платежной системы
      contractId - код договора
      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 moduleId, java.lang.String mpsId, Conf.MPSSystem system, int contractId, 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 - соединение с БД
      moduleId - код модуля MPS
      mpsId - код платежной системы в конфигурации модуля MPS
      system - набор настроек платежной системы
      contractId - код договора
      time - дата/время платежа
      sum - сумма платежа, пришедшая в запросе от платежной системы
      transId - код транзакции на стороне платежной системы
      rawNumber - идентификатор абонента, который присылает paynet в запросе
      type - тип поиска.
      paymentComment - комментарий платежа
      Returns:
      платеж mps, добавленный в БД.
      Throws:
      java.lang.Exception
    • addTransaction

      public Transaction addTransaction​(int id, java.sql.Connection con, int moduleId, java.lang.String mpsId, Conf.MPSSystem system, int contractId, 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 - соединение с БД
      moduleId - код модуля MPS
      mpsId - код платежной системы в конфигурации модуля MPS
      system - набор настроек платежной системы
      contractId - код договора
      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 moduleId, java.lang.String mpsId, int contractId, 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 moduleId, java.lang.String 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 moduleId, java.lang.String 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 - экземпляр соединения с БД.
      moduleId - код модуля 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 moduleId, java.lang.String 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 - экземлпяр соединения с БД
      moduleId - код модуля 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 moduleId, java.lang.String 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 moduleId, java.lang.String 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, java.lang.String 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 moduleId, java.lang.String 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, java.lang.String 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 moduleId, java.lang.String mpsId, java.util.Calendar from, java.util.Calendar until, boolean onlyPayed)
    • getTransactionList

      public java.util.List<Transaction> getTransactionList​(java.sql.Connection con, int mid, java.lang.String 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 moduleId, java.lang.String mpsId, java.util.Calendar from, java.util.Calendar to, int paymentTypeId, java.lang.String status) throws ru.bitel.bgbilling.common.BGException
      Получение списка платежей за произвольный период с возможностью фильтрации по типу платежа (такая возможность используется, например, в платежной системе Paynet)
      Parameters:
      con - экземпляр соединения с БД
      moduleId - код модуля 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​(java.lang.String mpsId, java.lang.String file, java.lang.String fileName, java.util.Calendar from, java.util.Calendar until, Setup setup, java.sql.Connection con, int moduleId) 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 moduleId, java.lang.String 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 moduleId, java.lang.String 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, java.lang.String mpsId, Setup setup, org.w3c.dom.Document payments)
      Добавление платежей которые нашлись в реестре но не было в базе
      Parameters:
      payments -
    • reviseRestoreTransactions

      public void reviseRestoreTransactions​(java.sql.Connection con, int mid, java.lang.String 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
    • setEncoding

      public void setEncoding​(java.lang.String encoding)
    • getEncoding

      public java.lang.String getEncoding()
    • getDefaultEncoding

      public java.lang.String getDefaultEncoding()
    • getResponse

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

      protected void processResponseEvent​(MPSResponse response, org.w3c.dom.Element responseElement)
      Создание и отправка синхронного события ДО ответа платёжной системе. Должно обрабатываться в динамическом коде скриптом-обработчиком. для внесения доп.информации, например "fields" - полей
      Parameters:
      response - - ответ платёжной системе
    • 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
    • setResponseParameters

      protected void setResponseParameters​(MPSResponse response, org.w3c.dom.Element responseElement)
    • getResponseAttributes

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