Особенности реализации стейтов¶
H – Information Entry State (шаг ввода данных пользователем)¶
На шаге типа H пользователю предоставляется возможность ввода данных с последующим помещением в NDC-буфер.
Изменена обработка восьмого параметра Entry Mode, Buffer and Display Parameters:
Не поддерживается выбор раскладки клавиатуры (цифровая/символьно-цифровая), всегда используется символьно-цифровой ввод.
Допускается использование не предусмотренных стандартом значений:
по умолчанию, длина вводимых данных 32 символа;
по умолчанию, отображение вводимых символов отключено;
по умолчанию, какой-либо буфер не заполняются.
Предусмотрена возможность расширенного заполнения буферов, параметр State_H_UseExtendedBuffer. Добавляется возможность изменения данных для «Buffer A», «Buffer B», «Buffer C», «Amount Buffer», «Track 1», «Track 2» и «Track 3» в части дозаписи в начало или с конца текущего значения буфера, перезаписи данных или записи поверх существующих. Добавляется возможность предустановки значения изменяемого буфера.
Расширяется обработка восьмого параметра Entry Mode, Buffer and Display Parameters
:
Максимальная длина вводимых данных 128 символов.
Значение параметра представлено в формате
XYZ
, где X,Y,Z - шестнадцатиричные символы.
Битовая маска шестнадцатиричного символа Z, четыре бита xxxy
, где
xxx
- заполняемый буфер:000 - Buffer A
001 - Buffer B
010 - Buffer C
011 - Amount Buffer
100 - Track 1
101 - Track 2
110 - Track 3
y
- бит отображение данных на экране.
Битовая маска шестнадцатиричных символов XY, четыре бита xxyyyyyy
, где
xx
- метод изменения:00 - запись поверх текущего значения
01 - запись в начало буфера
10 - запись с конца буфера
11 - перезапись текущего значения
yyyyyy
- смещение записи (кол-во символов, не применимо для yy =11
).
Символ |
X |
Y |
Z |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Бит |
3 |
2 |
1 |
0 |
3 |
2 |
1 |
0 |
3 |
2 |
1 |
0 |
Значение |
Xyz |
0 |
0 |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
Запись поверх текущего значения. |
Xyz |
0 |
1 |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
Запись в начало буфера. |
Xyz |
1 |
0 |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
Запись с конца буфера. |
Xyz |
1 |
1 |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
Перезапись текущего значения. |
XYz |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
x |
x |
x |
x |
Перезапись данных, начиная с позиции “000011” (пропуск трех символов). |
XYz |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
x |
x |
x |
x |
Запись данных, в конец буфера с позиции “000011” (пропуск трех символов с конца). |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
0 |
Вводимые данные маскируются на экране. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
1 |
Вводимые данные отображаются на экране. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
0 |
0 |
0 |
x |
Данные записываются в “Buffer A”. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
0 |
0 |
1 |
x |
Данные записываются в “Buffer B”. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
0 |
1 |
0 |
x |
Данные записываются в “Buffer C”. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
0 |
1 |
1 |
x |
Данные записываются в “Amount Buffer”. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
1 |
0 |
0 |
x |
Данные записываются в “Track 1”. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
1 |
0 |
1 |
x |
Данные записываются в “Track 2”. |
xyZ |
x |
x |
x |
x |
x |
x |
x |
x |
1 |
1 |
0 |
x |
Данные записываются в “Track 3”. |
Предполагается, что проверка размеров и значений буферов выполняется на шаге отправки транзакционного запроса.
Предустановленное значение изменяемого буфера определяется в словаре [HKEY_LOCAL_MACHINE\SOFTWARE\FS365\NDC\Vocabulary]
при помощи параметра с наименованием в формате H<номер_шага>
.
Например, параметр H365 со значением 31536000:
[HKEY_LOCAL_MACHINE\SOFTWARE\FS365\NDC\Vocabulary]
"H365"="31536000"
, приведет к помещению в выбранный буфер на шаге с номером 365
значения 31536000 перед изменением его данными, выбранными или введенными пользователем.
Отсутсвие параметра H365 приведет к изменению значения буфера, заданного предыдущими шагами сценария обслуживания.
I - Transaction Request State (шаг транзакционного запроса)¶
На шаге типа I собираются данные для отправки процессинговой системе (хосту), ожидается, разбирается и выполняется полученный ответ.
В случае активации режима отложенной авторизации (см. параметр CASHIN_OFFLINE_MODE), при отсутсвии связи или ответа хоста, перед переходом на шаг таймаута, указанный в третьем параметре (Central Response Timeout Next State Number), выполняется печать чека, определенного шаблоном «CashInOfflineModeTemplate.txt».
J - Close State (шаг завершения клиентской сессии)¶
На шаге типа J клиенту возвращается все, не переданное в процессе работы банку, сбразываются все данные о выполненных действиях и возвращается к первому шагу сценария осблуживания (по умолчанию, State 000).
Для УС с покупюрным приемом в зависимости от значения параметра BNA Notes Return/Retain/Leave Flag печатаются следующие чеки на возврат:
«000» (Return) – шаблон чека на возврат CashInReturnWithCardTemplate/CashInReturnNoCardTemplate;
«001» (Retain) – шаблон чека на возврат CashAcceptRetractedTemplate;
«002» (Leave notes in the escrow) – шаблон чека на возврат CashInReturnWithCardTemplate/CashInReturnNoCardTemplate.
В случае активации режима отложенной авторизации (см. параметр CASHIN_OFFLINE_MODE), после всех требуемых шагом действий и до перехода к следующему шагу, в течении некоторого времени повторно формируются и отправляются запросы на NDC-хост согласно реквизитам запомненных транзакций. В это время на монитор выводится экран с номером «C03».
Описанные действия выполняются при условии:
наличия сохраненных в защищенной базе незавершенных транзакций приема наличных;
предварительного успешного ответа NDC-хоста на последнем шаге взаимодействия (State I) одной из команд «5», «-» и «\“».
В случае успешного хостового ответа на повторный запрос авторизации транзакции печатается чек, определенный шаблоном «ndc_deposit_deffered_success_receipt.txt».
В случае неуспешного хостового ответа на повторный запрос авторизации транзакции печатается чек, определенный шаблоном «ndc_deposit_deffered_failure_receipt.txt».
U – Device Fitness Flow Select State (шаг проверки оборудования)¶
На шаге типа U проверяется работоспособность оборудования. Согласно NDC-стандарту, идентификатор (номер) оборудования определяется вторым параметром Device Number.
Поддерживается проверка следующих устройств:
003 — картридер;
004 — диспенсер;
006 — чековый принтер;
007 — журнальный принтер;
015 — кассета (тип 1);
016 — кассета (тип 2);
017 — кассета (тип 3);
034 — депозитный модуль;
094 — сканер штрихкодов.
Если оборудование работает нормально, то выполняется переход на шаг, указанный в третьем параметре Device Available Next State Number. Если оборудование недоступно, выполняется переход на шаг, указанный в пятом параметре Device Unavailable Next State Number.
Оборудование, для которого проверка не поддерживается, считается работоспособным.
X - FDK Information Entry State (шаг выбора данных пользователем)¶
На шаге типа X пользователю предоставляется возможность выбора FDK и последующем помещением в NDC-буфер значения, прикремпленного к выбранному FDK.
Изменена обработка шестого параметра Buffer ID и добавлена возможность предустановки значения изменяемого буфера (формат см. Особенности реализации NDC, H - Information Entry State).
Значение изменяемого буфера получается из значений параметров шага расширения Extension to State X
. Допускается использование словаря значений [HKEY_LOCAL_MACHINE\SOFTWARE\FS365\NDC\Vocabulary]
.
Например, значение 365 в параметрах шага расширения, приведет к помещению в выбранный буфер значения количество дней в году, при использовании следующей настройки:
[HKEY_LOCAL_MACHINE\SOFTWARE\FS365\NDC\Vocabulary]
"365"="количество дней в году"
Отстусвие значения 365 в словаре, приведет к помещению в буфер значения 365.
Шаги без описания¶
Базовые шаги:
A - Card Read State
B - PIN Entry State
C - Envelope Dispenser State
D - Pre-Set Operation Code Buffer State
E - Four FDK Selection Function State
F - Amount Entry State
G - Amount Check State
K - FIT Switch State
_ - Expanded FIT Switch State
L - Card Write State (не поддерживается)
M - Enhanced PIN Entry State
N - Camera Control State (не поддерживается)
R - Enhanced Amount Entry State
S - Language Code Switch State (не поддерживается)
T - Card Read - PIN Entry Initiation State (не поддерживается)
V - Language Select From Card State (не поддерживается)
W - FDK Switch State
Y - Eight FDK Selection Function State
b - Customer-Selectable PIN State
d … g and z - Exit States (не поддерживается)
k - Smart FIT Check State
m - PIN & Language Select State
> - Cash Accept State
w - Cheque Accept State (не поддерживается)
z - Master Expansion State (не поддерживается)
z001 - Bunch Cheque Accept State (не поддерживается)
z002 - Bunch Cheque Handling State (не поддерживается)
z003 - Cheque Detail Display State (не поддерживается)
z004 - Display Cheque Summary State (не поддерживается)
z008 - Insert Card State
z009 - Buffer Validation State (не поддерживается)
z010 - Local Cash Dispense State (не поддерживается)
z013 - Data Copy and Compare State (не поддерживается)
z014 - Cash Deposit Handling State (не поддерживается)
z017 - Note Mix Selection State (не поддерживается)
z020 - FIT Search State (не поддерживается)
z021 - CRM Flowpoint State (не поддерживается)
z024 - Prepare Dispense State (не поддерживается)
& - Barcode Read State
EMV-расширение, шаги:
+ - Begin ICC Initialisation State
, - Complete ICC Initialisation State
- - Automatic Language Selection State
. - Begin ICC Application Selection & Initialisation State
/ - Complete ICC Application Selection & Initialisation State
? - Set ICC Transaction Data State
; - ICC Re‐initialise State
z007 - EMV Smart DIP Take Card State (не поддерживается)
z012 - EMV Application Switch State (не поддерживается)