ru.bitel.bgbilling.modules.qiwi.server.bean

## Class AbstractQiwiProtocol

- java.lang.Object
- - ru.bitel.bgbilling.modules.qiwi.server.bean.AbstractQiwiProtocol

- Direct Known Subclasses:
    QiwiRest, QiwiSoap

      public abstract class AbstractQiwiProtocol
      extends java.lang.Object

  Абстрактный класс протокола модуля Qiwi. Все реализации должны быть наследниками этого класса. Не забыть про фабрику протоколов.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `AbstractQiwiProtocol.QiwiResultCode` Коды ошибок.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.sql.Connection` | `connection` Набор соединений с БД.
    `protected ContractManager` | `contractManager` Менеджер для работы с договорами в БД.
    `protected int` | `moduleId` Код модуля Qiwi
    `protected ModuleSetup` | `moduleSetup` Конфигурация модуля Qiwi

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractQiwiProtocol(java.sql.Connection con, int mid, ModuleSetup moduleSetup)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addPayment(Transaction transaction, TransactionManager manager)`
    `abstract java.lang.String` | `beginTransaction(int contractId, java.lang.String phone, java.math.BigDecimal sum, java.lang.String successUrl, java.lang.String failUrl)` Метод выставления счета абоненту из ЛК биллинга.
    `abstract void` | `cancelTransaction(Transaction transaction)` Отмена НЕОПЛАЧЕННОГО выставленного счета.
    `abstract void` | `checkRefundStatus(Transaction transaction)`
    `abstract void` | `checkTransaction(Transaction transaction)` Проверка текущего состояния транзакции на сервере Qiwi.
    `abstract void` | `refundTransaction(Transaction transaction)` Возврат средств (полный или частичный) по оплаченному счету.

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

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

- - ### Field Detail

    - #### moduleSetup

          protected ModuleSetup moduleSetup

      Конфигурация модуля Qiwi

    - #### moduleId

          protected int moduleId

      Код модуля Qiwi

    - #### connection

          protected java.sql.Connection connection

      Набор соединений с БД.

    - #### contractManager

          protected ContractManager contractManager

      Менеджер для работы с договорами в БД.

  - ### Constructor Detail

    - #### AbstractQiwiProtocol

          public AbstractQiwiProtocol(java.sql.Connection con,
                                      int mid,
                                      ModuleSetup moduleSetup)

  - ### Method Detail

    - #### beginTransaction

          public abstract java.lang.String beginTransaction(int contractId,
                                                            java.lang.String phone,
                                                            java.math.BigDecimal sum,
                                                            java.lang.String successUrl,
                                                            java.lang.String failUrl)
                                                     throws ru.bitel.bgbilling.common.BGException

      Метод выставления счета абоненту из ЛК биллинга. Метод возвращет url, на который должен быть перенаправлен абонент после выставления счета.
      Parameters:
        `contractId` - код договора
        `phone` - номер телефона абонента в формате 7xxxxxxxxxx
        `sum` - сумма счета
        `successUrl` - url, куда будет перенаправлен абонент после успешной оплаты. Настраивается в конфигурации модуля, либо приходит в запросе от нового ЛК.
        `failUrl` - url, куда будет перенаправлен абонент в случае неудачной оплаты. Настраивается в конфигурации модуля, либо приходит в запросе от нового ЛК.
      Returns:
        url, на который будет перенаправлен абонент после успешного выставления счета
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### checkTransaction

          public abstract void checkTransaction(Transaction transaction)
                                         throws ru.bitel.bgbilling.common.BGException

      Проверка текущего состояния транзакции на сервере Qiwi.
      Parameters:
        `transaction` - экземпляр транзакции в бд биллинга
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### cancelTransaction

          public abstract void cancelTransaction(Transaction transaction)
                                          throws ru.bitel.bgbilling.common.BGException

      Отмена НЕОПЛАЧЕННОГО выставленного счета.
      Parameters:
        `transaction` - транзакция, которую хотим отменить.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### refundTransaction

          public abstract void refundTransaction(Transaction transaction)
                                          throws ru.bitel.bgbilling.common.BGException

      Возврат средств (полный или частичный) по оплаченному счету.
      Parameters:
        `transaction` - транзакция, по которой хотим вернуть средства.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### checkRefundStatus

          public abstract void checkRefundStatus(Transaction transaction)
                                          throws ru.bitel.bgbilling.common.BGException

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

    - #### addPayment

          protected void addPayment(Transaction transaction,
                                    TransactionManager manager)
                             throws java.sql.SQLException,
                                    ru.bitel.bgbilling.common.BGException

      Throws:
        `java.sql.SQLException`
        `ru.bitel.bgbilling.common.BGException`