Module: uDeviceInterface
Base class: TOperationDeviceEngine
Базовый класс функциональности Aвторизация оплаты и привилегии.
После успешного выполнения операции авторизации ПОС проверяет, есть ли в базе в таблице tp_AuthorizationDeviceTypes запись для этого типа устройства авторизации (atdt_ID == AuthorizationType).
Если нет, она создается с такими значениями полей:
atdt_ID ← AuthorizationType
atdt_Name ← AuthorizationTypeName
После успешного выполнения операции авторизации ПОС проверяет, есть ли в базе в таблице tp_AuthorizationDevices запись для этого типа устройства авторизации с таким уникальным номером (atdv_atdt_ID == AuthorizationType && atdv_UniqueNumber == UniqueNumber).
Если нет, она создается с такими значениями полей:
atdv_atdt_ID ← AuthorizationType
atdv_UniqueNumber ← UniqueNumber
atdv_Name ← AuthorizationType + ' ' + UniqueNumber
При применении привилегии к гостевому счету, значение свойства TAuthorizationSalePrivilegeOutputParams.OperationDeviceData записывается в поле gest_SalePrivilegeData гостевого счета.
AuthorizationCheck - преавторизация оплаты (запрос доступной суммы).
AuthorizationClose - закрытие смены.
AuthorizationExtendedOperation -выполнение дополнительных операций.
AuthorizationOpen - открытие смены.
AuthorizationPay - авторизация оплаты.
AuthorizationRecept - авторизация внесения денег.
AuthorizationReprint - повторная печать чеков.
AuthorizationReturnPay - авторизация возврата оплаты.
AuthorizationReturnRecept - авторизация возврата внесения денег.
AuthorizationSalePrivilege - авторизация привилегии.
AuthorizationView - просмотр привилегии клиента.
constructor Create(Device: TDeviceInterface; IniParams: TIniParams);
procedure SaveTransaction(TransactionID: TGUID; OutputParams: <<TAuthorizationMainOutputParams#,TAuthorizationMainOutputParams>>; ErrorCode: Integer = DEVICESHELLCODE_OK; ErrorMessage: String = '');
property AuthorizationType: TGUID read FAuthorizationType write FAuthorizationType;
property AuthorizationTypeName: String read FAuthorizationTypeName write FAuthorizationTypeName;
property UniqueNumber: String read FUniqueNumber write FUniqueNumber;
Методы, вызываемые из оболочки:
procedure AuthorizationCheck(InputParams: <<TAuthorizationInputParams,TAuthorizationInputParams>>; OutputParams: TAuthorizationCheckOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationClose(InputParams: <<TAuthorizationInputParams,TAuthorizationInputParams>>; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationExtendedOperation(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationOpen(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationPay(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationRecept(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationReprint(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationReturnPay(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationReturnRecept(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationSalePrivilege(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationSalePrivilegeOutputParams; CancelHandle: THandle); virtual;
procedure AuthorizationView(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual;
Методы, предназначенные для перекрытия в драйвере устройства
procedure ExecuteCheck(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationCheckOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteClose(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteExtendedOperation(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteOpen(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure ExecutePay(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteRecept(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteReprint(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteReturnPay(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteReturnRecept(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteSalePrivilege(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationSalePrivilegeOutputParams; CancelHandle: THandle); virtual;
procedure ExecuteView(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual.
constructor Create(Device: TDeviceInterface; IniParams: TIniParams);
Устройство, для которого создается эта функциональность
Параметры устройства
Добавляет функциональность в список функциональностей устройства.
procedure SaveTransaction(TransactionID: TGUID; OutputParams: <<TAuthorizationMainOutputParams#,TAuthorizationMainOutputParams>>; ErrorCode: Integer = DEVICESHELLCODE_OK; ErrorMessage: String = '');
Идентификатор транзакции
Выходные параметры операции (результат)
Текст ошибки
property AuthorizationType: TGUID read FAuthorizationType write FAuthorizationType;
Уникальный идентификатор типа устройства авторизации.
Для каждого нового драйвера устройства нужно генерировать новый.
property AuthorizationTypeName: String read FAuthorizationTypeName write FAuthorizationTypeName;
Название типа устройства авторизации.
Например, Sberbank Authorization.
property UniqueNumber: String read FUniqueNumber write FUniqueNumber;
Уникальный номер устройства авторизации.
Можно использовать, например, номер ПИН-пада, если стыковка позволяет, или вывести настройку в параметры устройства.
procedure AuthorizationCheck(InputParams: <<TAuthorizationInputParams,TAuthorizationInputParams>>; OutputParams: TAuthorizationCheckOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Преавторизация оплаты (запрос доступной суммы).
Операция используется для запроса доступной суммы на счету клиента в момент ввода суммы при оплате на ПОСе.
Вызывает метод ExecuteCheck.
Вызывается из оболочки.
procedure AuthorizationClose(InputParams: <<TAuthorizationInputParams,TAuthorizationInputParams>>; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Закрытие смены.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecuteClose.
Вызывается из оболочки.
procedure AuthorizationExtendedOperation(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Выполнение дополнительных операций.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecuteExtendedOperation.
Вызывается из оболочки.
procedure AuthorizationOpen(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Открытие смены.
Добавлена для симметрии к операции AuthorizationClose. На ПОСе пока не вызывается.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecuteOpen.
Вызывается из оболочки.
procedure AuthorizationPay(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация оплаты.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecutePay.
Вызывается из оболочки.
procedure AuthorizationRecept(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация внесения денег.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecuteRecept.
Вызывается из оболочки.
procedure AuthorizationReprint(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Повторная печать чеков.
Вызывает метод ExecuteReprint.
Вызывается из оболочки.
procedure AuthorizationReturnPay(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация возврата оплаты.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecuteReturnPay.
Вызывается из оболочки.
procedure AuthorizationReturnRecept(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация возврата внесения денег.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecuteReturnRecept.
Вызывается из оболочки.
procedure AuthorizationSalePrivilege(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationSalePrivilegeOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация привилегии.
Вызывает метод ExecuteSalePrivilege.
Вызывается из оболочки.
procedure AuthorizationView(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Просмотр привилегии клиента.
На ПОСе пока не вызывается.
Вызывает метод ExecuteSalePrivilege.
Вызывается из оболочки.
procedure ExecuteCheck(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationCheckOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Преавторизация оплаты (запрос доступной суммы).
Операция используется для запроса доступной суммы на счету клиента в момент ввода суммы при оплате на ПОСе.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteClose(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Закрытие смены.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteExtendedOperation(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Выполнение дополнительных операций.
Иногда для стыковки требуется, чтобы поддерживались операции, которых нет в протоколе драйвера устройства.
Например, Напечатать последний чек.
Поддержка дополнительных операций реализуется, обычно, через показ диалога со списком операций.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteOpen(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Открытие смены.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecutePay(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация оплаты.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteRecept(InputParams: TAuthorizationMainInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация внесения денег.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteReprint(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Повторная печать чеков.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteReturnPay(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация возврата оплаты.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteReturnRecept(InputParams: TAuthorizationReturnInputParams; OutputParams: TAuthorizationMainOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация возврата внесения денег.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteSalePrivilege(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationSalePrivilegeOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Авторизация привилегии.
Метод предназначен для перекрытия в драйвере устройства.
procedure ExecuteView(InputParams: TAuthorizationInputParams; OutputParams: TAuthorizationOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Просмотр привилегии клиента.
Метод предназначен для перекрытия в драйвере устройства.