Шаблоны форм запросов |
Наверх Предыдущий Следующий |
Шаблоны форм хранятся в текстовых файлах (*.TBC), которые содержат специальную цифровую подпись. Перед началом транзакций они создаются на сервере, а затем подписываются и рассылаются клиентам. Чтобы импортировать такой шаблон, необходимо воспользоваться командой главного меню "Свойства -> Шаблоны форм запросов".
Шаблон описывает свойства экранной формы для ввода всех необходимых данных, переменные запроса и атрибуты письма, в котором он будет отправлен. Каждая строка шаблона состоит из ключевого слова с одним или несколькими параметрами. Если в начале строки стоит символ ";", она считается комментарием.
Атрибуты писем и свойства запросов
Для указания этих свойств используется ключевое слово MSG. Список его параметров:
Содержимое запроса
Данные для заполнения полей экранной формы представляют собой содержимое запроса. Как только пользователь нажмет кнопку "OK", The Bat! поместит его в тело письма, зашифрует или подпишет сообщение цифровой подписью (если это указано в шаблоне) и отправит на сервер.
Пример строки запроса
Запрос содержит две переменные с именами servicetype и accountnumber, причем accountnumber содержит значение "849780094", а servicetype - "getaccountlog". В этом случае строка запроса выглядит так:
servicetype=getaccountlog&accountnumber=849780094.
Способ ее формирования указан в RFC1866 (раздел 8.2.1, тип - application/x-www-form-urlencoded). Определенные символы такой строки необходимо изменить по следующим правилам: пробел заменяется на символ "+", все остальные (кроме цифр и букв) - на "%HH" (символ "процент" и две шестнадцатеричные цифры, представляющие ASCII-код заменяемого символа).
Элементы формы
Экранная форма позволяет использовать строки ввода, списки, переключатели, метки и кнопки. Эти элементы необходимо указать в шаблоне при помощи соответствующих ключевых слов:
Параметры элементов
5.2 JUSTIFY - для выравнивания текста надписи. Может принимать значения LEFT (по левой стороне), CENTER (по центру), RIGHT (по правой стороне) и WORDWRAP (в несколько строчек).
Пример TBC-файла
Ниже приведено содержимое типичного TBC-файла, который используется для получения сводки курсов валют за определенный период времени. Экранная форма содержит выпадающий список для выбора наименования валюты (COMBOBOX), а также поля для ввода начальной и конечной даты (EDIT).
-----BEGIN PGP SIGNED MESSAGE-----
MSG FORMTITLE="Currency Rate Request" MSG TO="Client-Bank <client-bank@bank.com>" MSG SUBJ="Client-Bank" MSG PRIORITY="High" MSG FORMWIDTH=260 MSG FORMHEIGHT=190 MSG ENCRYPT=ON MSG SIGN=ON
HIDDEN NAME="service" VALUE="getcurrencytrend" LABEL CAPTION="&Currency" X=16 Y=8 FOCUSNAME="iso" COMBOBOX NAME="iso" X=16 Y=24 WIDTH=120
COMBOBOX NAME="iso" ITEM="MDL","Moldavian Leu" COMBOBOX NAME="iso" ITEM="USD","US Dollar" COMBOBOX NAME="iso" ITEM="RUR","Russian Rouble" COMBOBOX NAME="iso" ITEM="UAH","Ukrainean Hr." COMBOBOX NAME="iso" ITEM="FIM","Finnish Mark" COMBOBOX NAME="iso" ITEM="DEM","Deutche Mark" COMBOBOX NAME="iso" ITEM="GBP","GB Pound"
LABEL CAPTION="&Starting Date" X=154 Y=8 FOCUSNAME="date1" EDIT NAME="date1" X=154 Y=24 EDIT NAME="date1" MASK="00/00/0000" VALUE="01011996" LABEL CAPTION="&Ending Date" X=154 Y=52 FOCUSNAME="date2" EDIT NAME="date2" X=154 Y=68 EDIT NAME="date2" MASK="00/00/0000" VALUE="01011999"
SUBMIT CAPTION="OK" X=60 Y=112 CANCEL CAPTION="Cancel" X=154 Y=112
-----BEGIN PGP SIGNATURE----- iQDVAwUANfjoiRQeqwtQAYtzAQHkIQX+JhO61HCBfVw5VF3KqQhpApmOPhk2gEKz C7qkNwpx7lexjbZvTVNGNfxTk7cTx5AxSFiUV32JH9WPm9fuJ5/bXIfWojDnaYbi OM/BqS2KykFyoiuy+KULji10oRTt1jdC0Yqyv+OMgo2RuMwI0QhUozpHlVvkEHkk r3acZ3NVIjBZHdW0I4YCjA3FKxBQmoFsQg9/ndjeE2lHZTCtLK2Kue036PeSCJq1 JWwVgWwT0JfhfFMXjj5tZm7pspNaGLst =FBRX -----END PGP SIGNATURE-----
Когда клиент нажмет на кнопку с надписью "OK", The Bat! сгенерирует строку запроса: service=getcurrencytrend&iso=USD&date1=01011996&date2=01011999
Так как значения параметров ENCRYPT и SIGN ключевого слова MSG установлены в "ON", The Bat! подпишет и зашифрует эту строку перед отправкой на сервер. Тело письма будет выглядеть примерно так:
-----BEGIN PGP MESSAGE----- hMwDFB6rC1ABi3MBBgBuPwdXPA/obgJJ/fcjDSqO7oh820EHlKpA5mzbYSwg/qWg wYvNO/iJq4mofSfUnwozK3S5dD4zSeNcEqzQzw3ZZpE5D8aLOlNRAKlRh2ZIfN4W 6pmLJrhcX/GvsH667YUfL97r8LCWbaBtYI8D85ZluPSNGzt8AIgjIEZLKaAcq6yD eYpO5GpxvvDvT8Vb80QnUZW5kTX9MGFg+gtUGqcb3f3dibyewWZfjndhkjj4Br4I QLQ5v0mjx76lqxhbi5qmAAABM3PfOx1lpLE7VkHCTuQSPsm09a69rjQqgKimOPxj hcH8wKXAi2FYDQ8wY8iszRZ9IeDHJtqOsdr0vUltT0Mj0jGvWi1Jb/jFOZ0jW/2J k1uFMo5Dy/gaGQjjCIZvRT2dWy7CQ67vnegTi2zsvMAPM6/Bz7qTA6lsMMY88E9p 4qDlcN6OZIlY8DGaExcIDpoZwPChgIQfA55VQyNfN5YKzfBxCmtqSWbbLFh7WnkR 8FBLi9E8rPGg2jmzfAn1CczYnlfXinHtuAKmxmt3m3bOyNv5SGmMz+9WWhWIBH8Q XIBXrfH2yDDldKwkyj0tsjeXs6LFS7D/kMCdBNM1FClWw1EftTBbdwL0ykDX9Z6f NS6fQxYJxGrfAMp7hSaGydrenSKEviAy5o6HyjBxoCqQLGKdsWQ= =wflO -----END PGP MESSAGE-----
Получив письмо, сервер его расшифрует, проверить подлинность подписи, обработает строку запроса и отправит текущий курс валют обратно пользователю. Если добавить в шаблон эти строчки:
MSG TPL=" Услуга : $service$" MSG TPL=" Валюта : $iso$" MSG TPL="Начальная дата : $date1$" MSG TPL=" Конечная дата : $date2$"
...то программа сформирует читабельный запрос и расшифрованное тело письма будет выглядеть так:
Услуга : getcurrencytrend Валюта : MDL Начальная дата : 01.01.1996 Конечная дата : 01.01.1999
Если добавить в шаблон эти строчки:
MSG NFO="Письмо содержит запрос о текущем курсе валют и предназначено для" MSG NFO="отправки в банк. Текст зашифрован при помощи OpenPGP, чтобы" MSG NFO="обеспечить сохранность передаваемых данных. Если вы находитесь в" MSG NFO="сети Internet, нажмите комбинацию клавиш <Shift+F2> или" MSG NFO="воспользуйтесь пунктом главного меню программы "Ящик | Отправить" MSG NFO="почту"."
... то тело письма будет выглядеть так:
Письмо содержит запрос о текущем курсе валют и предназначено для отправки в банк. Текст зашифрован при помощи OpenPGP, чтобы обеспечить сохранность передаваемых данных. Если вы находитесь в сети Internet, нажмите комбинацию клавиш <Shift+F2> или воспользуйтесь пунктом главного меню программы "Ящик -> Отправить почту".
-----BEGIN PGP MESSAGE----- hMwDFB6rC1ABi3MBBgBuPwdXPA/obgJJ/fcjDSqO7oh820EHlKpA5mzbYSwg/qWg wYvNO/iJq4mofSfUnwozK3S5dD4zSeNcEqzQzw3ZZpE5D8aLOlNRAKlRh2ZIfN4W 6pmLJrhcX/GvsH667YUfL97r8LCWbaBtYI8D85ZluPSNGzt8AIgjIEZLKaAcq6yD eYpO5GpxvvDvT8Vb80QnUZW5kTX9MGFg+gtUGqcb3f3dibyewWZfjndhkjj4Br4I QLQ5v0mjx76lqxhbi5qmAAABM3PfOx1lpLE7VkHCTuQSPsm09a69rjQqgKimOPxj hcH8wKXAi2FYDQ8wY8iszRZ9IeDHJtqOsdr0vUltT0Mj0jGvWi1Jb/jFOZ0jW/2J k1uFMo5Dy/gaGQjjCIZvRT2dWy7CQ67vnegTi2zsvMAPM6/Bz7qTA6lsMMY88E9p 4qDlcN6OZIlY8DGaExcIDpoZwPChgIQfA55VQyNfN5YKzfBxCmtqSWbbLFh7WnkR 8FBLi9E8rPGg2jmzfAn1CczYnlfXinHtuAKmxmt3m3bOyNv5SGmMz+9WWhWIBH8Q XIBXrfH2yDDldKwkyj0tsjeXs6LFS7D/kMCdBNM1FClWw1EftTBbdwL0ykDX9Z6f NS6fQxYJxGrfAMp7hSaGydrenSKEviAy5o6HyjBxoCqQLGKdsWQ= =wflO -----END PGP MESSAGE-----
|