1 Электронные терминалы INGENICO I5100 Техническое руководство по администрированию шаблонов чеков АРКОМ 2009 2 ИНСТРУКЦИЯ ПО АДМИНИСТРИРОВАНИЮ ШАБЛОНОВ ЧЕКОВ ДЛЯ ПОДСИСТЕМЫ УПРАВЛЕНИЯ ПАРАМЕТРАМИ TMS (для программы ARCOM TMS SPDH v1.01) Шаблон чека – это специальный скрипт – минипрограмма (последовательность команд), определяющая порядок вывода на печать информации, соответствующей данной транзакции. Скрипты пишутся отдельно для трех секций чека. Верхняя секция, имеющая в TMS название «Заголовок» определяет вид «шапки» чека, средняя секция - «Основной» определяет вид основной части чека, содержащей финансово значимые данные, нижняя секция, называемая «Нижний коллонтитул», определяет вид нижней части чека. (Отдельный скрипт пишется для чека ДЕТАЛИ EMV, который, при необходимости, можно распечатать для операции с картой стандарта EMV.) Подобное разделение позволяет, используя существующие шаблоны или внося минимальные коррективы в существующие шаблоны, формировать чеки с требуемой конфигурацией. Выбор скриптов (шаблонов чеков) осуществляется в соответствующих полях профилей «Терминалы», «Организации» или «Терминальные группы». Если выбранные шаблоны в соответствующих полях профилей «Терминальные Группы», «Терминалы» и «Организации» не совпадают или не определены , приоритетным считается выбор, сделанный в профиле, стоящем выше в основном меню программы TMS. Знак многоточия «…» означает, что шаблон чека в данном профиле не выбран. Язык, используемый для написания шаблона чека, имеет блочную структуру и использует обращение к внутренним переменным терминала. Это позволяет, использовать одни и те же шаблоны для различных терминалов или групп терминалов и формировать различные виды финансовых документов. Таблица внутренних переменных, относящихся к транзакции: ACQ-ID – идентификатор эквайера AID – идентификатор EMV приложения AMT-AUTH - сумма авторизованная AMT-CLEAR - сумма без комиссии и скидки AMT-COMM - сумма комиссии AMT-DISC - сумма скидки AMT-ORIG - исходная сумма (при возврате) APP-LABEL – название приложения APPROVED - переменная определена если, операция одобрена 3 ARC-HOST – код ответа процессинга ARC-ISSUER – код ответа эмитента ARC-MESSAGE – расшифровка кода ответа процессинга AUTH-CODE – код авторизации AUTH-CODE-SOURCE – источник кода авторизации AVN-CARD - номер версии приложения карты AVN-TERM - номер версии приложения терминала BALANCE – остаток на счете клиента, если определен CASHIER – Ф.И.О. кассира CHIP-DECISION – переменная определена, когда операция отменена по решению карты CID – cryptogram information data CID-NAME - cryptogram information data (текст) CLIENT-COPY - переменная определена если, печатается чек для клиента CLIENT-NAME – имя клиента CRYPTOGRAM - криптограмма DDOL – список элементов данных необходимых для динамической аутентификации DUPLICATE – дубликат EMV – переменная определена, если операция проводилась с EMV картой EMV-FLOOR – лимит транзакции EXPIRY-DATE – срок годности карты IAC-DEF – код действия эммитента по умолчанию IAC-DEN - код действия эммитента для отмены операции IAC-ONL - код действия эммитента для онлайн INVOICE-NR – номер чека ISR – результат выполнения скрипта эмитента MERCHANT-COPY – переменная определена, если печатается чек для коммерсанта OFFLINE-PIN – строка «оффлайн» ONLINE – переменная определена если, операция выполнялась в онлайн ONLINE-PIN - строка «введен онлайн ПИН» OP-NAME – название операции PAN – номер карты PAN-SEQN – последовательный номер карты (PAN sequence number) 4 PIN - переменная определена если, вводился ПИН REVERSED – переменная определена если, операция была отклонена SIGNATURE – строка «подпись клиента», если переменная определена TAC-DEF – коды действий терминала по умолчанию TAC-DEN - коды действий терминала для отмены операции TAC-ONL коды действий терминала для онлайн TDOL – список данных участвующих при вычислении сертификата TERM-CAPS – свойства терминала TERM-ACAPS – дополнительные свойства терминала TERM-ID – идентификатор терминала по процессингу TERM-TYPE – тип терминала TSI – информация о статусе транзакции TSN-BATCH – последовательный номер пакета TSN-SHIFT – последовательный номер смены TSN-TXN – последовательный номер транзакции TVR – результат верификации TXN-DATE – дата выполнения транзакции TXN-TIME– время выполнения транзакции Таблица внутренних переменных, относящихся к конфигурации TMS: ORG-NAME – переменная из поля «Название» профиля «Организации» TERM-TRADE-NAME – переменная из поля «Торговое Название» профиля «Терминалы» TRADE-NAME – переменная из поля «Торговое Название» профиля «Организации» TERM-ADDR – переменная из поля «Адрес установки» профиля «Терминалы» (оно же «Адрес установки» профиля «Организации») ORG-TLF – переменная из поля «Телефон» профиля «Организации» TERM-TLF – переменная из поля «Контактный Телефон» профиля «Терминалы» ORG-TAXID - переменная из поля «ИНН» профиля «Организации» CURR-NAME- переменная из поля «Принтер» профиля «Валюты» CURR-CODE- переменная из поля «Код» профиля «Валюты» TERM-ID – переменная из поля «ИД Терминала» профиля «Терминалы» 5 Скрипт, описывающий правила вывода информации на печать, состоит из последовательности текстовых констант и управляющих команд. • Текстовые константы могут содержать любые символы за исключением символов управляющих команд и фигурных скобок «{» и «}». Если текстовая константа не помещается на строку, то она будет автоматически перенесена на следующую, с сохранением выбранного форматирования. При переносе будет выполнена попытка разбить строку по знакам препинания; в случае неудачи разрыв осуществится по максимально допустимой длине строки. Стандартный вывод выполняется шрифтом 24 знака на строку. Все данные, предназначенные для вывода на печать и введенные в скрипт кириллицей, печатаются на чеке прописными буквами. Данные, заносимые латиницей, на чеке печатаются в полном соответствии с введёнными данными. • Управляющие команды: \n – перевод строки, сбрасывает выполнение команд \r, \c, \w, \d \с – текст будет центрироваться по ширине чека, сбрасывает выполнение команд \r, \r – текст будет выравниваться по правому краю чека, сбрасывает выполнение команд \с, \b – текст печатается жирным шрифтом, сброс команды осуществляется следующим объявлением \b; \w – текст печатается широким шрифтом, сбрасывает выполнение команд \s \d - строка печатается шрифтом с двойной высотой; \s – режим печати сжатым шрифтом (шрифтом 42 знака на строку, стандартный вывод выполняется шрифтом 24 знака на строку), может быть выполнен жирным шрифтом.. • Команды обращения к переменным – команда начинается с символа «{» и заканчивается «}», внутри данного блока содержится имя внутренней переменной (см. Таблицу внутренних переменных). При выполнении скрипта данный блок будет заменен текущим значением соответствующей внутренней переменной терминала или базы данных TMS. • Логические команды – команды открываются символами «{?» или «{?!» и закрываются «}». За открывающими символами должно следовать имя внутренней переменной. Например: {?EMV …}. Логические команды могут быть вложенными: {?EMV {?!AID }…}. {? – если последующая переменная определена, то последующий блок команд выполняется, иначе он будет пропущен. 6 {?! – если последующая переменная не определена, последующий блок команд выполняется, иначе он будет пропущен. Ниже приведены примеры шаблонов чеков, используемых при конфигурировании терминалов Банка N: Заголовок (с шапкой чека) \c{ORG-NAME}\n {?TERM-TRADE-NAME \c{TERM-TRADE-NAME}\n} {?TRADE-NAME \c{TRADE-NAME}\n} \c{TERM-ADDR}\n {?ORG-TLF \cТел. {ORG-TLF}\n} {?ORG-TAXID \cИНН {ORG-TAXID}\n} \cБанк N\n Терминал\r{TERM-ID}\n {TXN-DATE}\b{TXN-TIME}\rКассир:{CASHIER}\n \n Заголовок (без шапки чека) \cБанк N\n Терминал\r{TERM-ID}\n {TXN-DATE}\b{TXN-TIME}\n \n Основная часть {?AMT-ORIG \cСтарая сумма:{AMT-ORIG}\n\cНовая сумма:\n} {?DC \cСумма:{AMT-CLEAR}\n {?AMT-DISC \cСкидка:{AMT-DISC}\n} {?AMT-COMM \cКомиссия:{AMT-COMM}\n} \cВсего к оплате:\n} {?AMT-AUTH\c{AMT-AUTH} {CURR-NAME}\n} {?APPROVED {?CLIENT-COPY {?BALANCE Доступно на счету: {BALANCE}\n}}} {?!APPROVED \n\w\cОперация отклонена {?CHIP-DECISION картой}\n\n} {?REVERSED Транзакция отменена\n} {?ONLINE Код ответа:\r{ARC-HOST}\n {?ARC-MESSAGE \c{ARC-MESSAGE}\n}} {?AUTH-CODE Код авторизации\r{AUTH-CODE}{AUTH-CODE-SOURCE}\n} {?AID Прил-е:\r{AID}\n} {?PIN \cИдентификация по {?OFFLINE-PIN офлайн-}ПИН\n} Карта\r{PAN}{?PAN-SEQN :{PAN-SEQN}}\n {?APP-LABEL {APP-LABEL}}\r{EXP-DATE-SHORT}\n {?EMV TVR:\r{TVR}\n {CID-NAME}({CID}):\r{CRYPTOGRAM}\n} {?CLIENT-NAME\c{CLIENT-NAME}\n} Чек #{INVOICE-NR}\r{TSN-SHIFT}.{TSN-BATCH}.{TSN-TXN}\n 7 Нижний колонтитул (с подписью кассира) {?APPROVED {?PIN \n\cВведен ПИН-код\n\n} {?!PIN \n\n\c________________________________\n \cПодпись клиента\n } \n\n\c________________________________\n \cПодпись кассира\n\n } или {?APPROVED Операцию подтверждаю:\n\n \n________________________\n \c(Подпись клиента)\n\n \n________________________\n \c(Подпись кассира)\n } Нижний колонтитул (без подписи кассира, с клиентским чеком) {?APPROVED {?SIGNATURE {?!CLIENT-COPY Операцию подтверждаю:\n\n \n________________________\n \c(Подпись клиента)\n}}} {?CLIENT-COPY \cСпасибо за покупку\n} Детали EMV {?EMV 9F10: {IAD}\n 9F37:\r{UN}\n 9F36:\r{ATC}\n 9C:\r{TXN-TYPE}\n 5F2A:\r{CURR-CODE}\n 82:\r{AIP}\n 9F1A:\r{TERM-COUNTRY}\n 9F34:\r{CVM-RESULT}\n TAC-Den:\r{TAC-DEN}\n TAC-Onl:\r{TAC-ONL}\n TAC-Def:\r{TAC-DEF}\n IAC-Den:\r{IAC-DEN}\n IAC-Onl:\r{IAC-ONL}\n IAC-Def:\r{IAC-DEF}\n }