/** @file */ #ifndef PAYCARD_IPAYCARD_H #define PAYCARD_IPAYCARD_H #include "idtobase.h" namespace TED { //! Драйвер платежных систем (дПС) namespace PayCard { //! Версия интерфейса драйвера платежных систем #define DTO_IPAYCARD_VER1 3 //! Идентификаторы платежных систем /*! Константы для put_DeviceSettings() и put_DeviceSingleSettings() */ enum PaySystemID { PaySystemInvalid = -1, //! INPAS SmartSale PaySystemINPAS = 0, //! ОСМП: приём платежей PaySystemOSMP, //! CyberPlat: приём платежей PaySystemCyberPlat, //! e-port: приём платежей PaySystemEPort, //! Сбербанк PaySystemSberbank, //! Эрлайн PaySystemRLine, //! ARCOM ARCUS v.2 PaySystemArcomARCUS2, //! Газпромбанк PaySystemGazprombank, //! INPAS SmartSale FPrintPay PaySystemINPASFPrintPay, //! ARCOM ARCUS v.2 FPrintPay PaySystemArcomARCUS2FPrintPay, //! Сберабанк FPrintPay PaySystemSberbankFPrintPay, //! Сберабанк (АТОЛ) PaySystemSberbankATOL, //! INPAS SmartSale (АТОЛ) PaySystemINPASATOL, //! ARCOM ARCUS v.2 (АТОЛ) PaySystemArcomARCUS2ATOL, //! ICMP PaySystemICMP }; //! Тип операции enum OperationType { OperationTypeInvalid = -1, //! Оплата OperationTypeSub = 0, //! Возврат OperationTypeAdd, //! Отмена оплаты OperationTypeCancelSub, //! Отмена возврата OperationTypeCancelAdd, //! Активация БЕЗ суммы OperationTypeAct, //! Активация С суммой OperationTypeActSum, //! Бонусы и скидка OperationTypeBonusDisc, //! Внесение предоплаты OperationTypePrePay, //! Просмотр баланса OperationTypeBalance, //! Оплата услуг OperationTypeServicePayment, //! Оплата услуг картой OperationTypeCardServicePayment }; //! Тип служебной операции enum ServiceOperationType { ServiceOperationTypeInvalid = -1, //! Обновление авторизационного идентификатора ServiceOperationTypeAuthTokenUpdate = 0, //! Загрузка настроек ServiceOperationTypeDownloadSettings, //! Загрузка ПО ServiceOperationTypeDownloadSoftware, //! Загрузка настроек и ПО ServiceOperationTypeDownloadAll }; //! Тип отчета enum ReportType { ReportTypeInvalid = -1, //! Закрытие смены ReportTypeCloseSession = 0, //! Журнал операций ReportTypeJournalSession, //! Итоги операций ReportTypeTotalSession, //! Краткий отчет ReportTypeBrief, //! Полный отчет ReportTypeFull, //! Запрос чека по номеру ReportTypeQueryCheque }; //! Тип транзакции enum TransType { TransTypeInvalid = -1, //! Продажа TransTypeSale = 0, //! Подготовка к авторизации TransTypePreAuth, //! Прием наличных TransTypeCashAdvance, //! Не используется TransTypeUnUsed1, //! Возврат TransTypeRefund, //! Не используется TransTypeUnUsed2, //! Продажа офлайн TransTypeOffLineSale, //! Не используется TransTypeUnUsed3, //! Не используется TransTypeUnUsed4, //! Аннулирование TransTypeVoid, //! Отмена продажи TransTypeReversalSale, //! Отмена возврата TransTypeReversalRefund, //! Просмотр баланса TransTypeBalance, //! Оплата услуг TransTypeServicePayment }; //! Тип авторизации enum AuthorizationType { AuthorizationTypeInvalid = -1, //! Ридером по подписи AuthorizationTypeReaderSign = 0, //! Вручную по подписи AuthorizationTypeManualSign, //! Ридером по PIN AuthorizationTypeReaderPIN, //! Вручную по PIN AuthorizationTypeManualPIN, //! Чиповая карта AuthorizationTypeChip }; //! Дополнительные параметры /*! Константы для put_DeviceSettings() и put_DeviceSingleSettings() */ enum AddParam { AddParamInvalid = -1, //! Нет AddParamNone = 0, //! Номер счета AddParamAccount, //! Номер телефона AddParamPhone, //! Логин AddParamLogin, //! Код AddParamCode }; //! Тип комиссии /*! Константы для put_DeviceSettings() и put_DeviceSingleSettings() */ enum CommissionType { CommissionTypeInvalid = -1, //! Сумма CommissionTypeSum = 0, //! Процент CommissionTypePercent }; //! Способ начисления комиссии /*! Константы для put_DeviceSettings() и put_DeviceSingleSettings() */ enum CommissionAddition { CommissionAdditionInvalid = -1, //! Включена в сумму CommissionAdditionIncluded = 0, //! Добавляется к сумме CommissionAdditionExcluded, //! Запрос у оператора CommissionAdditionAsk }; //! Способ связи с сервером авторизации /*! Константы для put_DeviceSettings() и put_DeviceSingleSettings() */ enum ModemMode { //! Средствами ПК/смартфона/планшета ModemModeTcp = 0, //! Средствами ККТ ModemModeEcr = 1 }; class IPayCard; } } //! Создает экземпляр драйвера платежных систем. /*! При несовпадении версии ver и актуальной будет возвращаться 0, а в лог записываться соответствующее сообщение. \param ver Версия драйвера (DTO_IPAYCARD_VER1) \return Указатель на экземпляр драйвера платежных систем \retval 0 Ошибка */ extern "C" DTOSHARED_EXPORT TED::PayCard::IPayCard * DTOSHARED_CCA CreatePayCardInterface(int ver); //! Разрушает экземпляр драйвера платежных систем. /*! \param iface Экземпляр драйвера платежных систем */ extern "C" DTOSHARED_EXPORT void DTOSHARED_CCA ReleasePayCardInterface(TED::PayCard::IPayCard **iface); //! Тип функции CreatePayCardInterface(). typedef TED::PayCard::IPayCard*(*CreatePayCardInterfacePtr)(int ver); //! Тип функции ReleasePayCardInterface(). typedef void (*ReleasePayCardInterfacePtr)(TED::PayCard::IPayCard **iface); namespace TED { namespace PayCard { //! Интерфейс драйвера платежных систем class IPayCard : public IDTOBase { public: friend DTOSHARED_EXPORT void DTOSHARED_CCA::ReleasePayCardInterface(IPayCard **iface); typedef ReleasePayCardInterfacePtr ReleaseFunction; //! Возвращает указатель на функцию удаления интерфейса. /*! \return Указатель на функцию удаления интерфейса */ virtual ReleaseFunction DTOSHARED_CCA get_ReleaseFunction() = 0; //! Сбрасывает состояние драйвера. /*! \retval 0 Успех */ virtual int DTOSHARED_CCA Reset() = 0; //! Выполняет сервисную операцию. /*!
Свойства
НазваниеОписаниеДоступ
Входные свойства
ServiceOperationType Тип сервисной операции (TED::PayCard::ServiceOperationType) put_ServiceOperationType()
\retval -1 Ошибка \retval 0 Успех */ virtual int DTOSHARED_CCA Execute() = 0; //! Выполняет подготовку к авторизации. /*! Метод выполняет подготовку к авторизации. Проверяет корректность входных параметров.
Свойства
НазваниеОписаниеДоступ
Входные свойства
AuthorizationType Тип авторизации (TED::PayCard::AuthorizationType) put_AuthorizationType()
OperationType Тип операции (TED::PayCard::OperationType) put_OperationType()
Sum Сумма операции put_Sum()
Currency Код валюты put_Currency()
ReferenceNumber Ссылочный номер put_ReferenceNumber()
AuthCode Код авторизации get_AuthCode()
CharLineLength Ширина слипа put_CharLineLength()
Account Номер счета put_Account()
PhoneNumber Номер телефона put_PhoneNumber()
DataTrack2 Вторая дорожка картыput_DataTrack2()
ECRReceiptNumber Номер чека put_ECRReceiptNumber()
Выходные свойства
Mask Маска ожидаемого параметра get_Mask()
Поддерживаемые типы операций
Протокол Название OperationType
012345678910
0 INPAS SmartSale ++++
2 CyberPlat: приём платежей +
4 Сбербанк ++++
6 Arcom ARCUS v.2 ++++
7 Газпромбанк ++++
8 INPAS SmartSale (FPrintPay) ++++
9 Arcom ARCUS v.2 (FPrintPay) ++++
10 Сбербанк (FPrintPay) ++++
11 Сбербанк (АТОЛ) ++++
12 INPAS SmartSale (АТОЛ) ++++
13 Arcom ARCUS v.2 (АТОЛ) ++++
Метод может заполнить свойство ResultCode (помимо ошибок) кодами: - EC_PAYCARD_NEED_PHONE_NUMBER (необходим номер телефона) - EC_PAYCARD_NEED_ACCOUNT (необходим номер счета) - EC_PAYCARD_NEED_REFERENCE_NUMBER (необходим РРН) - EC_PAYCARD_NEED_AUTH_CODE (необходим код авторизации) Получение данных результов говорит о том, что незаполнены соответствующие обязательные параметры авторизации. Также возвращается маска для ввода в свойстве \a Mask. \warning Необходимые входные параметры сильно зависят от типа используемого АС, способа авторизации и т.д. \retval -1 Ошибка \retval 0 Успех */ virtual int DTOSHARED_CCA PrepareAuthorization() = 0; //! Выполняет авторизацию. /*! Выполняет авторизацию с параметрами, заданными для PrepareAuthorization().
Свойства
НазваниеОписаниеДоступ
Выходные свойства
ResponceCode Маска ожидаемого параметра get_ResponseCode()
Text Слип get_Text()
ReferenceNumber Ссылочный номер get_ReferenceNumber()
AuthCode Код авторизации get_AuthCode()
CardType Тип карты get_CardType()
CardNumber Номер карты get_CardNumber()
CardExpDate Срок дейтсвия карты get_CardExpDate()
TransDate Дата транзакции (ДД.ММ.ГГГГ)get_TransDate()
TransTime Время транзакции (ЧЧ:ММ:СС) get_TransTime()
TransID Идентификатор транзакции get_TransID()
TerminalID Идентификатор терминала get_TerminalID()
SlipNumber Номер слипа get_SlipNumber()
\retval -1 Ошибка \retval 0 Успех */ virtual int DTOSHARED_CCA Authorization() = 0; //! Начинает формирование отчета. /*! Данный метод относится к группе блочных методов, т.е. используется только в сочетании с другими методами. Для формирования отчета необходимо передать накопленные за банковскую смену данные о финансовых операциях. Для этого служат следующие методы: - BeginReport() – начать отчет; - AddToReport() – добавить данные в отчет; - EndReport() – завершить отчет и сформировать результат.
Свойства
НазваниеОписаниеДоступ
Входные свойства
ReportType Тип отчета (TED::PayCard::ReportType) put_ReportType()
CharLineLength Ширина слипа put_CharLineLength()
Поддерживаемые отчеты
Протокол Название ReportType
012345
TED::PayCard::PaySystemINPAS INPAS SmartSale + +
TED::PayCard::PaySystemCyberPlat CyberPlat: приём платежей
TED::PayCard::PaySystemSberbank Сбербанк +
TED::PayCard::PaySystemArcomARCUS2 Arcom ARCUS v.2 +++
TED::PayCard::PaySystemGazprombank Газпромбанк ++ ++
TED::PayCard::PaySystemINPASFPrintPay INPAS SmartSale (FPrintPay) + +
TED::PayCard::PaySystemArcomARCUS2FPrintPay Arcom ARCUS v.2 (FPrintPay) +++
TED::PayCard::PaySystemSberbankFPrintPay Сбербанк (FPrintPay) ++
TED::PayCard::PaySystemSberbankATOL Сбербанк (АТОЛ) ++
TED::PayCard::PaySystemINPASATOL INPAS SmartSale (АТОЛ) + +
TED::PayCard::PaySystemArcomARCUS2ATOL Arcom ARCUS v.2 (АТОЛ) +++
\retval -1 Ошибка \retval 0 Успех \sa put_ReportType() \sa put_CharLineLength() \sa AddToReport() \sa EndReport() */ virtual int DTOSHARED_CCA BeginReport() = 0; //! Добавляет данные в отчет. /*! Данный метод относится к группе блочных методов, т.е. используется только в сочетании с другими методами. Для формирования отчета необходимо передать накопленные за банковскую смену данные о финансовых операциях. Для этого служат следующие методы: - BeginReport() – начать отчет; - AddToReport() – добавить данные в отчет; - EndReport() – завершить отчет и сформировать результат. Если в процессе добавления данных в отчет, т.е. до вызова метода EndReport(), необходимо по какой-либо причине прервать данный процесс, то можно вызвать метод ResetState().
Свойства
НазваниеОписаниеДоступ
Входные свойства
ReportAuthCode Код авторизации put_ReportAuthCode()
ReportCardExpDate Срок действия карты put_ReportCardExpDate()
ReportCardNumber Номер карты put_ReportCardNumber()
ReportMsgNumber Номер сообщений put_ReportMsgNumber()
ReportOperationType Тип операции put_ReportOperationType()
ReportReferenceNumber Ссылочный номер put_ReportReferenceNumber()
ReportResponseCode Код ответа put_ReportResponseCode()
ReportSlipNumber Номер слипа put_ReportSlipNumber()
ReportSum Сумма операции put_ReportSum()
ReportTerminalID Идентификатор терминала put_ReportTerminalID()
ReportTransDate Дата транзакции (ДД.ММ.ГГГГ)put_ReportTransDate()
ReportTransTime Время транзакции (ЧЧ:ММ:СС) put_ReportTransTime()
ReportTransType Тип транзакции put_ReportTransType()
\warning В текущей версии работает только для \a ReportType = TED::PayCard::ReportTypeTotalSession. В остальных случаях требуется сразу вызывать EndReport(). \retval -1 Ошибка \retval 0 Успех \sa BeginReport() \sa EndReport() */ virtual int DTOSHARED_CCA AddToReport() = 0; //! Завершает формирование отчета. /*! Данный метод относится к группе блочных методов, т.е. используется только в сочетании с другими методами. Для формирования отчета необходимо передать накопленные за банковскую смену данные о финансовых операциях. Для этого служат следующие методы: - BeginReport() – начать отчет; - AddToReport() – добавить данные в отчет; - EndReport() – завершить отчет и сформировать результат.
Свойства
НазваниеОписаниеДоступ
Выходные свойства
ResponseCode Код ответа get_ResponseCode()
Text Слип get_Text()
\retval -1 Ошибка \retval 0 Успех \sa BeginReport() \sa AddToReport() */ virtual int DTOSHARED_CCA EndReport() = 0; //! Прерывает блочную операцию. /*! Позволяет прервать начатую блочную операцию (BeginReport(), AddToReport(), EndReport()). \warning Метод всегда завершается успешно (\a ResultCode = 0), независимо от того, начата какая-либо блочная операция, или нет. \retval 0 Успех */ virtual int DTOSHARED_CCA ResetState() = 0; //! Возвращает номер точки оплаты. /*! \param value Номер точки оплаты \sa put_TerminalID() */ virtual int DTOSHARED_CCA get_TerminalNumber(int *value) = 0; //! Устанавливает номер точки оплаты. /*! \param value Номер точки оплаты \retval -1 Ошибка \retval 0 Успех \sa get_TerminalNumber() */ virtual int DTOSHARED_CCA put_TerminalNumber(int value) = 0; //! Возвращает тип операции. /*! \param value Тип операции \retval 0 Успех \sa put_OperationType() \sa OperationType */ virtual int DTOSHARED_CCA get_OperationType(int *value) = 0; //! Устанавливает тип операции. /*! \param value Тип операции \retval -1 Ошибка \retval 0 Успех \sa get_OperationType() \sa OperationType */ virtual int DTOSHARED_CCA put_OperationType(int value) = 0; //! Возвращает тип сервисной операции. /*! \param value Тип сервисной операции \retval 0 Успех \sa put_ServiceOperationType() \sa ServiceOperationType */ virtual int DTOSHARED_CCA get_ServiceOperationType(int *value) = 0; //! Устанавливает тип сервисной операции. /*! \param value Тип сервисной операции \retval -1 Ошибка \retval 0 Успех \sa get_ServiceOperationType() \sa ServiceOperationType */ virtual int DTOSHARED_CCA put_ServiceOperationType(int value) = 0; //! Возвращает тип авторизации. /*! \param value Тип авторизации \retval 0 Успех \sa put_AuthorizationType() \sa AuthorizationType */ virtual int DTOSHARED_CCA get_AuthorizationType(int *value) = 0; //! Устанавливает тип авторизации. /*! \param value Тип авторизации \retval -1 Ошибка \retval 0 Успех \sa get_AuthorizationType() \sa AuthorizationType */ virtual int DTOSHARED_CCA put_AuthorizationType(int value) = 0; //! Возвращает сумму. /*! \param value Сумма \retval 0 Успех \sa put_Sum() */ virtual int DTOSHARED_CCA get_Sum(double *value) = 0; //! Устанавливает сумму. /*! \param value Сумма \retval -1 Ошибка \retval 0 Успех \sa get_Sum() */ virtual int DTOSHARED_CCA put_Sum(double value) = 0; //! Возвращает название. /*! \warning Не используется в текущей версии \param bfr Буфер для номера названия \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_Name() */ virtual int DTOSHARED_CCA get_Name(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает название. /*! \warning Не используется в текущей версии \param value Название \retval -1 Ошибка \retval 0 Успех \sa get_Name() */ virtual int DTOSHARED_CCA put_Name(const wchar_t *value) = 0; //! Возвращает номер телефона. /*! \param bfr Буфер для номера телефона \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_PhoneNumber() */ virtual int DTOSHARED_CCA get_PhoneNumber(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает номер телефона. /*! \param value Номер телефона \retval -1 Ошибка \retval 0 Успех \sa get_PhoneNumber() */ virtual int DTOSHARED_CCA put_PhoneNumber(const wchar_t *value) = 0; //! Возвращает номер карты. /*! \param bfr Буфер для номера карты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CardNumber() */ virtual int DTOSHARED_CCA get_CardNumber(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает номер карты. /*! \param value Номер телефона \retval -1 Ошибка \retval 0 Успех \sa get_CardNumber() */ virtual int DTOSHARED_CCA put_CardNumber(const wchar_t *value) = 0; //! Возвращает тип карты. /*! \param bfr Буфер для типа карты \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_CardType(wchar_t *bfr, int bfrSize) = 0; //! Возвращает срок действия карты. /*! \param bfr Буфер для срока действия карты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CardExpDate() */ virtual int DTOSHARED_CCA get_CardExpDate(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает срок действия карты. /*! \param value Срок действия карты \retval -1 Ошибка \retval 0 Успех \sa get_CardExpDate() */ virtual int DTOSHARED_CCA put_CardExpDate(const wchar_t *value) = 0; //! Возвращает владельца карты. /*! \param bfr Буфер для владельца карты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CardHolderName() */ virtual int DTOSHARED_CCA get_CardHolderName(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает владельца карты. /*! \param value Номер телефона \retval -1 Ошибка \retval 0 Успех \sa get_CardHolderName() */ virtual int DTOSHARED_CCA put_CardHolderName(const wchar_t *value) = 0; //! Возвращает дорожки карты. /*! \warning Не используется в текущей версии \param bfr Буфер для дорожек карты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_DataTracks() */ virtual int DTOSHARED_CCA get_DataTracks(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает дорожки карты. /*! \warning Не используется в текущей версии \param value Дорожки карты \retval -1 Ошибка \retval 0 Успех \sa get_DataTracks() */ virtual int DTOSHARED_CCA put_DataTracks(const wchar_t *value) = 0; //! Возвращает вторую дорожку карты. /*! \param bfr Буфер для второй дорожки карты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_DataTrack2() */ virtual int DTOSHARED_CCA get_DataTrack2(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает вторую дорожку карты. /*! \param value Вторая дорожка карты \retval -1 Ошибка \retval 0 Успех \sa get_DataTrack2() */ virtual int DTOSHARED_CCA put_DataTrack2(const wchar_t *value) = 0; //! Возвращает ссылочный номер. /*! \param bfr Буфер для ссылочного номера \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReferenceNumber() */ virtual int DTOSHARED_CCA get_ReferenceNumber(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает ссылочный номер. /*! \param value Ссылочный номер \retval -1 Ошибка \retval 0 Успех \sa get_ReferenceNumber() */ virtual int DTOSHARED_CCA put_ReferenceNumber(const wchar_t *value) = 0; //! Возвращает ширину строки. /*! \param value Ширина строки \retval 0 Успех \sa put_CharLineLength() */ virtual int DTOSHARED_CCA get_CharLineLength(int *value) = 0; //! Устанавливает ширину строки. /*! \param value Ширина строки \retval -1 Ошибка \retval 0 Успех \sa get_CharLineLength() */ virtual int DTOSHARED_CCA put_CharLineLength(int value) = 0; //! Возвращает номер смены ККТ. /*! \warning Не используется в текущей версии \param value Номер смены ККТ \retval 0 Успех \sa put_ECRSessionNumber() */ virtual int DTOSHARED_CCA get_ECRSessionNumber(int *value) = 0; //! Устанавливает номер смены ККТ. /*! \warning Не используется в текущей версии \param value Номер смены ККТ \retval -1 Ошибка \retval 0 Успех \sa get_ECRSessionNumber() */ virtual int DTOSHARED_CCA put_ECRSessionNumber(int value) = 0; //! Возвращает номер чека ККТ. /*! \param value Номер чека ККТ \retval 0 Успех \sa put_ECRReceiptNumber() */ virtual int DTOSHARED_CCA get_ECRReceiptNumber(int *value) = 0; //! Устанавливает номер чека ККТ. /*! \param value Номер чека ККТ \retval -1 Ошибка \retval 0 Успех \sa get_ECRReceiptNumber() */ virtual int DTOSHARED_CCA put_ECRReceiptNumber(int value) = 0; //! Возвращает код валюты. /*! \param bfr Буфер для кода валюты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_Currency() */ virtual int DTOSHARED_CCA get_Currency(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает код валюты. /*! \param value Код валюты \retval -1 Ошибка \retval 0 Успех \sa get_Currency() */ virtual int DTOSHARED_CCA put_Currency(const wchar_t *value) = 0; //! Возвращает код ответа платежной системы. /*! \param value Код ответа \retval 0 Успех */ virtual int DTOSHARED_CCA get_ResponseCode(int *value) = 0; //! Возвращает тип транзакции. /*! \warning Не используется в текущей версии \param value Тип транзакции \retval 0 Успех \sa TransType */ virtual int DTOSHARED_CCA get_TransType(int *value) = 0; //! Возвращает дату транзакции. /*! \param bfr Буфер для даты транзакции \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_TransDate(wchar_t *bfr, int bfrSize) = 0; //! Возвращает время транзации. /*! \param bfr Буфер для времени транзакции \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_TransTime(wchar_t *bfr, int bfrSize) = 0; //! Возвращает идентификатор транзации. /*! \param bfr Буфер для идентификатора транзакции \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_TransID(wchar_t *bfr, int bfrSize) = 0; //! Возвращает код авторизации. /*! \param bfr Буфер для кода авторизации \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_AuthCode() */ virtual int DTOSHARED_CCA get_AuthCode(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает код авторизации. /*! \param value Код авторизации \retval -1 Ошибка \retval 0 Успех \sa get_AuthCode() */ virtual int DTOSHARED_CCA put_AuthCode(const wchar_t *value) = 0; //! Возвращает идентификатор терминала. /*! \param bfr Буфер для идентификатора терминала \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_TerminalID(wchar_t *bfr, int bfrSize) = 0; //! Возвращает номер сообщения. /*! \warning Не используется в текущей версии \param value Номер сообщения \retval 0 Успех */ virtual int DTOSHARED_CCA get_MsgNumber(int *value) = 0; //! Возвращает тип сообщения. /*! \warning Не используется в текущей версии \param bfr Буфер для типа сообщения \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_MessageType(wchar_t *bfr, int bfrSize) = 0; //! Возвращает номер точки обслуживания. /*! \warning Не используется в текущей версии \param bfr Буфер для номера точки обслуживания \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_MerchNumber(wchar_t *bfr, int bfrSize) = 0; //! Возвращает категорию точки обслуживания. /*! \warning Не используется в текущей версии \param bfr Буфер для категории точки обслуживания \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_MerchCategoryCode(wchar_t *bfr, int bfrSize) = 0; //! Возвращает английское название точки обслуживания. /*! \warning Не используется в текущей версии \param bfr Буфер для английского названия точки обслуживания \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_MerchEngName(wchar_t *bfr, int bfrSize) = 0; //! Возвращает номер слипа. /*! \warning Не используется в текущей версии \param value Номер слипа \retval 0 Успех \sa put_SlipNumber() */ virtual int DTOSHARED_CCA get_SlipNumber(int *value) = 0; //! Устанавливает номер слипа. /*! \warning Не используется в текущей версии \param value Номер слипа \retval -1 Ошибка \retval 0 Успех \sa get_SlipNumber() */ virtual int DTOSHARED_CCA put_SlipNumber(int value) = 0; //! Возвращает текст слипа. /*! \param bfr Буфер для текста слипа \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_Text(wchar_t *bfr, int bfrSize) = 0; //! Возвращает скидку. /*! \warning Не используется в текущей версии \param value Скидка \retval 0 Успех */ virtual int DTOSHARED_CCA get_Discount(double *value) = 0; //! Возвращает значение бонуса. /*! \warning Не используется в текущей версии \param value Бонус \retval 0 Успех */ virtual int DTOSHARED_CCA get_Bonus(double *value) = 0; //! Возвращает код авторизации (для отчетов). /*! \param bfr Буфер для кода авторизации \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportAuthCode() */ virtual int DTOSHARED_CCA get_ReportAuthCode(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает код авторизации (для отчетов). /*! \param value Код авторизации \retval -1 Ошибка \retval 0 Успех \sa get_ReportAuthCode() */ virtual int DTOSHARED_CCA put_ReportAuthCode(const wchar_t *value) = 0; //! Возвращает тип операции (для отчетов). /*! \param value Тип операции \retval 0 Успех \sa put_ReportOperationType() */ virtual int DTOSHARED_CCA get_ReportOperationType(int *value) = 0; //! Устанавливает тип операции (для отчетов). /*! \param value Тип операции \retval -1 Ошибка \retval 0 Успех \sa get_ReportOperationType() */ virtual int DTOSHARED_CCA put_ReportOperationType(int value) = 0; //! Возвращает тип транзакции (для отчетов). /*! \param value Тип транзакции \retval 0 Успех \sa put_ReportTransType() \sa TransType */ virtual int DTOSHARED_CCA get_ReportTransType(int *value) = 0; //! Устанавливает тип транзакции (для отчетов). /*! \param value Тип транзакции \retval -1 Ошибка \retval 0 Успех \sa get_ReportTransType() \sa TransType */ virtual int DTOSHARED_CCA put_ReportTransType(int value) = 0; //! Возвращает сумму (для отчетов). /*! \param value Сумма \retval 0 Успех \sa put_ReportSum() */ virtual int DTOSHARED_CCA get_ReportSum(double *value) = 0; //! Устанавливает сумму (для отчетов). /*! \param value Сумма \retval -1 Ошибка \retval 0 Успех \sa get_ReportSum() */ virtual int DTOSHARED_CCA put_ReportSum(double value) = 0; //! Возвращает номер карты (для отчетов). /*! \param bfr Буфер для номера карты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportCardNumber() */ virtual int DTOSHARED_CCA get_ReportCardNumber(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает номер карты (для отчетов). /*! \param value Номер карты \retval -1 Ошибка \retval 0 Успех \sa get_ReportCardNumber() */ virtual int DTOSHARED_CCA put_ReportCardNumber(const wchar_t *value) = 0; //! Возвращает срок действия карты (для отчетов). /*! \param bfr Буфер для срока действия карты \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportCardExpDate() */ virtual int DTOSHARED_CCA get_ReportCardExpDate(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает срок действия карты (для отчетов). /*! \param value Срок действия карты \retval -1 Ошибка \retval 0 Успех \sa get_ReportCardExpDate() */ virtual int DTOSHARED_CCA put_ReportCardExpDate(const wchar_t *value) = 0; //! Возвращает номер слипа (для отчетов). /*! \param value Номер слипа \retval 0 Успех \sa put_ReportSlipNumber() */ virtual int DTOSHARED_CCA get_ReportSlipNumber(int *value) = 0; //! Устанавливает номер слипа (для отчетов). /*! \param value Номер телефона \retval -1 Ошибка \retval 0 Успех \sa get_ReportSlipNumber() */ virtual int DTOSHARED_CCA put_ReportSlipNumber(int value) = 0; //! Возвращает дату транзакции (для отчетов). /*! \param bfr Буфер для даты транзакции \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportTransDate() */ virtual int DTOSHARED_CCA get_ReportTransDate(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает дату транзакции (для отчетов). /*! \param value Дата транзакции \retval -1 Ошибка \retval 0 Успех \sa get_ReportTransDate() */ virtual int DTOSHARED_CCA put_ReportTransDate(const wchar_t *value) = 0; //! Возвращает время транзакции (для отчетов). /*! \param bfr Буфер для времени транзакции \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportTransTime() */ virtual int DTOSHARED_CCA get_ReportTransTime(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает время транзакции (для отчетов). /*! \param value Время транзакции \retval -1 Ошибка \retval 0 Успех \sa get_ReportTransTime() */ virtual int DTOSHARED_CCA put_ReportTransTime(const wchar_t *value) = 0; //! Возвращает номер сообщения (для отчетов). /*! \param value Номер сообщения \retval 0 Успех \sa put_ReportSum() */ virtual int DTOSHARED_CCA get_ReportMsgNumber(int *value) = 0; //! Устанавливает номер сообщения (для отчетов). /*! \param value Номер сообщения \retval -1 Ошибка \retval 0 Успех \sa get_ReportMsgNumber() */ virtual int DTOSHARED_CCA put_ReportMsgNumber(int value) = 0; //! Возвращает идентификатор терминала (для отчетов). /*! \param bfr Буфер для идентификатора терминала \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportTerminalID() */ virtual int DTOSHARED_CCA get_ReportTerminalID(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает идентификатор терминала (для отчетов). /*! \param value Идентификатор терминала \retval -1 Ошибка \retval 0 Успех \sa get_ReportTerminalID() */ virtual int DTOSHARED_CCA put_ReportTerminalID(const wchar_t *value) = 0; //! Возвращает ссылочный номер (для отчетов). /*! \param bfr Буфер для ссылочного номера \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportReferenceNumber() */ virtual int DTOSHARED_CCA get_ReportReferenceNumber(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает ссылочный номер (для отчетов). /*! \param value Ссылочный номер \retval -1 Ошибка \retval 0 Успех \sa get_ReportReferenceNumber() */ virtual int DTOSHARED_CCA put_ReportReferenceNumber(const wchar_t *value) = 0; //! Возвращает код ответа (для отчетов). /*! \param bfr Буфер для кода ответа \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_ReportResponseCode() */ virtual int DTOSHARED_CCA get_ReportResponseCode(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает код ответа (для отчетов). /*! \param value Код ответа \retval -1 Ошибка \retval 0 Успех \sa get_ReportResponseCode() */ virtual int DTOSHARED_CCA put_ReportResponseCode(const wchar_t *value) = 0; //! Возвращает тип отчета. /*! \param value Номер сообщения \retval 0 Успех \sa put_ReportType() \sa ReportType */ virtual int DTOSHARED_CCA get_ReportType(int *value) = 0; //! Устанавливает тип отчета. /*! \param value Тип отчета \retval -1 Ошибка \retval 0 Успех \sa get_ReportType() \sa ReportType */ virtual int DTOSHARED_CCA put_ReportType(int value) = 0; //! Возвращает штрихкод. /*! \warning Не используется в текущей версии \param bfr Буфер для штрихкода \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_Barcode() */ virtual int DTOSHARED_CCA get_Barcode(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает штрихкод. /*! \warning Не используется в текущей версии \param value Тип отчета \retval -1 Ошибка \retval 0 Успех \sa get_Barcode() */ virtual int DTOSHARED_CCA put_Barcode(const wchar_t *value) = 0; //! Возвращает имя кассира. /*! \warning Не используется в текущей версии \param bfr Буфер для имени \param bfrSize Размер буфера \return Требуемый размер буфера \retval 0 Успех */ virtual int DTOSHARED_CCA get_Cashier(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает имя кассира. /*! \warning Не используется в текущей версии \param value Имя кассира \retval -1 Ошибка \retval 0 Успех \sa get_Cashier() */ virtual int DTOSHARED_CCA put_Cashier(const wchar_t *value) = 0; //! Возвращает номер счета. /*! \param bfr Буфер для номера счета \param bfrSize Размер буфера \return Требуемый размер буфера \retval 0 Успех */ virtual int DTOSHARED_CCA get_Account(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает номер счета. /*! \param value Номер счета \retval -1 Ошибка \retval 0 Успех \sa get_Account() */ virtual int DTOSHARED_CCA put_Account(const wchar_t *value) = 0; //! Возвращает маску для ввода. /*! \param bfr Буфер для маски \param bfrSize Размер буфера \return Требуемый размер буфера */ virtual int DTOSHARED_CCA get_Mask(wchar_t *bfr, int bfrSize) = 0; //! Возвращает значение комиссии. /*! \param value Комиссия \retval 0 Успех */ virtual int DTOSHARED_CCA get_Commission(double *value) = 0; virtual int DTOSHARED_CCA get_ServiceOperator(wchar_t *bfr, int bfrSize) = 0; //! Возвращает идентификатор зачисленной суммы. /*! \warning Не используется в текущей версии \param bfr Буфер для идентификатора \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_SumWareCode(wchar_t *bfr, int bfrSize) = 0; //! Возвращает идентификатор комиссии. /*! \warning Не используется в текущей версии \param bfr Буфер для идентификатора \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CommissionWareCode(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает номер оператора. /*! \param value Номер оператора \retval -1 Ошибка \retval 0 Успех \sa get_CurrentOperator() */ virtual int DTOSHARED_CCA put_CurrentOperator(int value) = 0; //! Возвращает номер оператора. /*! \param value Номер оператора \retval 0 Успех \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperator(int *value) = 0; //! Возвращает название текущего оператора. /*! \warning Не используется в текущей версии \param bfr Буфер для оператора \param bfrSize Размер буфера \retval 0 Успех */ virtual int DTOSHARED_CCA get_CurrentOperatorName(wchar_t *bfr, int bfrSize) = 0; //! Возвращает код текущего оператора. /*! \param bfr Буфер для кода \param bfrSize Размер буфера \return Требуемый размер буфера \retval 0 Успех \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperatorCode(wchar_t *bfr, int bfrSize) = 0; //! Возвращает минимальную сумму для текущего оператора. /*! \param value Минимальная сумма \retval 0 Успех \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperatorMinSum(double *value) = 0; //! Возвращает максимальную сумму для текущего оператора. /*! \param value Максимальная сумма \retval 0 Успех \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperatorMaxSum(double *value) = 0; //! Возвращает тип комиссии для текущего оператора. /*! \param value Тип комиссии \retval 0 Успех \sa put_CurrentOperator() \sa CommissionType */ virtual int DTOSHARED_CCA get_CurrentOperatorCommissionType(int *value) = 0; //! Возвращает способ начисления комиссии для текущего оператора. /*! \param value Способ начисления комиссии \retval 0 Успех \sa put_CurrentOperator() \sa CommissionAddition */ virtual int DTOSHARED_CCA get_CurrentOperatorCommissionAddition(int *value) = 0; //! Возвращает значение комиссии для текущего оператора. /*! \param value Название оператора \retval 0 Успех \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperatorCommission(double *value) = 0; virtual int DTOSHARED_CCA get_CurrentOperatorAddReqSum(double *value) = 0; //! Возвращает тип первого параметра для текущего оператора. /*! \param value Тип параметра \retval 0 Успех \sa put_CurrentOperator() \sa get_CurrentOperatorMask1() \sa AddParam */ virtual int DTOSHARED_CCA get_CurrentOperatorParam1(int *value) = 0; //! Возвращает маску для ввода первого параметра для текущего оператора. /*! \param bfr Буфер для маски \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CurrentOperator() \sa get_CurrentOperatorParam1() */ virtual int DTOSHARED_CCA get_CurrentOperatorMask1(wchar_t *bfr, int bfrSize) = 0; //! Возвращает тип второго параметра для текущего оператора. /*! \param value Тип параметра \retval 0 Успех \sa put_CurrentOperator() \sa get_CurrentOperatorMask2() \sa AddParam */ virtual int DTOSHARED_CCA get_CurrentOperatorParam2(int *value) = 0; //! Возвращает маску для ввода второго параметра для текущего оператора. /*! \param bfr Буфер для маски \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CurrentOperator() \sa get_CurrentOperatorParam2() */ virtual int DTOSHARED_CCA get_CurrentOperatorMask2(wchar_t *bfr, int bfrSize) = 0; virtual int DTOSHARED_CCA get_CurrentOperatorCommissionRounding(wchar_t *bfr, int bfrSize) = 0; //! Возвращает шлюз для текущего оператора. /*! \param bfr Буфер для шлюза \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperatorGateway(wchar_t *bfr, int bfrSize) = 0; //! Возвращает идентификатор зачисленной суммы для текущего оператора. /*! \param bfr Буфер для идентификатора \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperatorSumWareCode(wchar_t *bfr, int bfrSize) = 0; //! Возвращает идентификатор комиссии для текущего оператора. /*! \param bfr Буфер для идентификатора \param bfrSize Размер буфера \return Требуемый размер буфера \sa put_CurrentOperator() */ virtual int DTOSHARED_CCA get_CurrentOperatorCommissionWareCode(wchar_t *bfr, int bfrSize) = 0; //! Устанавливает дескриптор пинпада. /*! Используется для связи дПС и дККТ в случае работы с пинпадом FPrintPay-01. С помощью данного дескриптора будет осуществляться управление пинпадом. \param value Дескриптор пинпада \retval -1 Ошибка \retval 0 Успех \sa TED::Fptr::IFptr::get_PinPadDevice */ virtual int DTOSHARED_CCA put_PinPadDevice(void *value) = 0; //! Устанавливает дескриптор модема. /*! Используется для связи дПС и дККТ в случае работы с модемом FPrintPay-01. С помощью данного дескриптора будет осуществляться управление модемом. \param value Дескриптор модема \retval -1 Ошибка \retval 0 Успех \sa TED::Fptr::IFptr::get_ModemDevice */ virtual int DTOSHARED_CCA put_ModemDevice(void *value) = 0; protected: IPayCard() { } virtual ~IPayCard() { } private: IPayCard(const IPayCard&); IPayCard& operator=(const IPayCard&); }; } } #endif