Интеграция с ПО UPOS через библиотеку GATE. 1.0 Платформа Win32.

- Титульная страница
- Группы
- Структуры данных

Структуры данных | Определения типов | Перечисления
Список операций библиотеки
Примеры работы с библиотекой » Служебные функции библиотеки

Получить описание поддерживаемых операций KO_FUNCTIONS_LIST. Подробнее...

## Структуры данных

struct | tag_EnumStruct
| Описание поддерживаемой операции Подробнее...
struct | tag_struct_out3
| Контейнер для массива поддерживаемых операции Подробнее...

## Определения типов

typedef struct tag_EnumStruct | EnumStruct
| Описание поддерживаемой операции Подробнее...
typedef struct tag_struct_out3 | struct_out3
| Контейнер для массива поддерживаемых операции Подробнее...

## Перечисления

enum | GateOperationOptions { O_DEBIT = 0x00000001, O_CREDIT = 0x00000002, O_CASH = 0x00000004, O_TRANSFER = 0x00000008,
O_SERVICE = 0x00000010,
O_INFO = 0x00000020,
O_BANKTERM = 0x00000040,
O_TRADETERM = 0x00000080,
O_SPECIAL = 0x00000100
}

## Подробное описание

Получить описание поддерживаемых операций KO_FUNCTIONS_LIST.

При вызове функции 3 структура struct_out3 должна быть инициализирована вызываю-щей программой. Буфер Buffer также должен быть выделен вызывающей программой и иметь достаточный размер (для его определения необходимо предварительно вызвать функцию 2). Возвращенный список карточных операций может быть использован внешней програм-мой при построении пользовательского интерфейса (меню, диалоговых окон и т.д.). Но-мер функции позволяет приблизительно определить ее содержание (см. раздел «Классы функций») и расположить ее в соответствующей ветви меню. Кроме того, дополнительная информация о содержании операции может быть получена из поля Options. В нем могут быть установлены биты GateOperationOptions.

//предполагается что библиотека предварительно инициализирована вызовом @ref KO_INITIALIZATION
//
InArg in;
OutArg out;
struct_out2 out2;
struct_out3 out3;
//Названия функций указаны в кодировке 1251, поэтому устаналиваем локаль для корректного вывода текста в консольном режиме
setlocale(LC_ALL, "russian_Russia.1251");
memset(&in,0,sizeof(in));
memset(&out,0,sizeof(out));
memset(&out2,0,sizeof(out2));
out.out_struct = &out2;
DWORD error = call_sb_kernel(2,&in,&out);
if (error==::ERR_OK){
memset(&in,0,sizeof(in));
memset(&out,0,sizeof(out));
memset(&out3,0,sizeof(out3));
out.out_struct = &out3;
out3.Buffer = new EnumStruct[out2.Count];
if ((error = call_sb_kernel(3,&in,&out))==::ERR_OK){
for(unsigned n = 0; n < out2.Count; n++)
{
std::cout << "Function: '"<< out3.Buffer[n].Name << "' has number " << out3.Buffer[n].FuncID << std::endl;
}
}
delete[] out3.Buffer;
}

Результат работы примера

1 Function: 'Оплата покупки' has number 1000
2 Function: 'Выдача наличных' has number 1001
3 Function: 'Возврат покупки' has number 1002
4 Function: 'Оплата ГСМ' has number 1003
5 Function: 'Проверить наличие суммы' has number 1004
6 Function: 'Прочитать ФИО клиента и номер карты' has number 1005
7 Function: 'Баланс карты' has number 2000
8 Function: 'Справка об операциях' has number 2001
9 Function: 'Перевод средств на ОТОК' has number 2002
10 Function: 'Изменение ПИНа' has number 2003
11 Function: 'Загрузка средств' has number 2004
12 Function: 'Баланс счета' has number 2005
13 Function: 'Авторизация' has number 2006
14 Function: 'Получить идентификатор карты' has number 2007
15 Function: 'Справка о карте терминала' has number 3000
16 Function: 'Инкассация карты терминала' has number 3001
17 Function: 'Закрытие дня по СБЕРКАРТ' has number 3002
18 Function: 'Оплата покупки' has number 4000
19 Function: 'Выдача наличных' has number 4001
20 Function: 'Возврат покупки' has number 4002
21 Function: 'Отмена операции' has number 4003
22 Function: 'Безналичный перевод при наличии карты клиента' has number 4004
23 Function: 'Безналичный перевод при отсутствии карты клиента' has number 4005
24 Function: 'Слип по картам American Express' has number 4006
25 Function: 'Слип оплаты' has number 4007
26 Function: 'Слип выдачи наличных' has number 4008
27 Function: 'Предавторизация' has number 4009
28 Function: 'Завершение расчета' has number 4010
29 Function: 'Взнос наличных (предв. зачисление)' has number 4011
30 Function: 'Взнос наличных (подтверждение)' has number 4012
31 Function: 'Погашение кредита' has number 4013
32 Function: 'Перевод с карты на карту' has number 4014
33 Function: 'Арест средств по решению суда' has number 4016
34 Function: 'Списание средств по аресту' has number 4017
35 Function: 'Снятие ареста' has number 4018
36 Function: 'Выдача наличных по заявлению клиента без карты' has number 4019
37 Function: 'Списание по требованию' has number 4020
38 Function: 'Установка ПИН-кода' has number 4021
39 Function: 'Смена ПИН-кода' has number 4022
40 Function: 'Списание средств в оплату услуг Банка' has number 4023
41 Function: 'Запись отпечатков пальцев' has number 4024
42 Function: 'Установка оффлайн-лимита' has number 4025
43 Function: 'Распечатка истории карты' has number 4026
44 Function: 'Оплата услуг банка' has number 4023
45 Function: 'Запрос баланса' has number 5000
46 Function: 'Разблокировка карт с чипом' has number 5001
47 Function: 'Получить идентификатор карты' has number 5002
48 Function: 'Блокировка карты' has number 5003
49 Function: 'Проверка ПИНа' has number 5004
50 Function: 'Итоги дня по картам с магнитной полосой' has number 6000
51 Function: 'Подтверждение операции по картам с магнитной полосой' has number 6001
52 Function: 'Формирование текущего отчета по всем типам карт' has number 7000
53 Function: 'Повторное формирование последнего чека' has number 7001
54 Function: 'Печать старой контрольной ленты' has number 7002

## Типы

typedef struct tag_EnumStruct EnumStruct

Описание поддерживаемой операции

См. также
  Docs/Для разработчиков ПО ККМ/examples/gate.dll/cpp/functions-0-999

typedef struct tag_struct_out3 struct_out3

Контейнер для массива поддерживаемых операции

Заметки
  Buffer должен быть инициализирован. Возвращенный список операций может быть использован внешней программой при построении пользовательского интерфейса (меню, диалоговых окон и т.д.). Для торгового кассового ПО могут использоваться операции с опцией O_TRADETERM Для банковского кассового ПО могут использоваться операции с опцией O_BANKTERM Если кассовое предполагает доступ к сервисным функция терминала, то необходимо предоставить доступ к фугкциям с опцией O_SERVICE Для банковского ПО может быть предоставлен доступ в информационным функциям с опцией O_INFO Кассовое ПО может требовать наличия специальных функций, реализованных "под заказчика" такие функции имеют опцию O_SPECIAL

## Перечисления

enum GateOperationOptions

Флаги поля Options

Элементы перечислений
O_DEBIT | Операция предполагает списание средств с карты (счета) клиента
O_CREDIT | Операция предполагает зачисление средств на карту (счет) клиента
O_CASH | Операция предполагает выдачу наличных денежных средств из кассы или внесение их в кассу
O_TRANSFER | Операция предполагает перемещение средств в пределах карты (карточных счетов) клиента
O_SERVICE | Операция является сервисной; она не влияет на финансовое состояние карты (счета), но может влиять на административное состояние (блокировка, разблокировка, смена ПИНа и т.д.)
O_INFO | Операция является только информационной и не влияет на финансовое или административное состояние карты
O_BANKTERM | Операция разрешена на банковском терминале
O_TRADETERM | Операция разрешена на торговом терминале
O_SPECIAL | Специальная операция, предназначенная для использовании в ПО, в котором специально реализована поддержка такой операции.