Next Previous Contents

4. Структура записи для передачи



В одной из ближайших версий в связи со скорым внедрением межбанковских валютных расчетов будет изменена структура текстового файла для приема в комплекс 'Клиент-Банк'(PLAT.TXT). Новая структура тексового файла будет такая.


 [35 ] Счет клиента(с учетом доступа к счетам на рабочем месте)

 [ 3 ] Числовой идентификатор валюты счета клиента(например 980)

 [15 ] МФО(BIC) банка корреспондента(например 300012)

 [149] Наименование банка корреспондента(если есть МФО можно пробелы)

 [35 ] Счет корреспондента

 [ 3 ] Числовой идентификатор валюты счета корреспондента(например 980)

 [15 ] Код ОКПО корреспондента(из-за России)

 [149] Наименование корреспондента(например ДЕМО КЛИЕНТ)

 [ 3 ] Числовой идентификатор страны корреспондента(например 804)

 [ 1 ] Д/К(1-списание со счета клиента,0-зачисление на счет клиента)

 [ 3 ] Вид обработки (1-ПЛАТЕЖНОЕ ПОРУЧЕНИЕ,2-ТРЕБОВАНИЕ ПОРУЧЕНИЕ)

 [14 ] Сумма документа(больше 0)

 [10 ] Номер документа(не пустой)

 [ 4 ] процент НДС в сотых 2000=20.00

 [ 1 ] проставлять НДС в документе(0-нет,1-Без ПДВ,2-в т.ч ПДВ)

 [ 1 ] Признак документа(0-обычный,1-в счет неотл.нужд,2-в карт2)

 [ 1 ] Вид платежа(0-обычный,2-экспорт-импорт)

 [ 4 ] Код раздела платежа

 [ 4 ] Код параграфа платежа

 [ 8 ] Дата документа(в формате ДДММГГГГ)

 [ 8 ] Дата валютирования документа(в формате ДДММГГГГ)

 [159] Назначение платежа(длина больше 3 символов)

 [15 ] МФО(BIC) банка посредника

 [149] Наименование банка посредника(если есть МФО можно пробелы)

 [ 1 ] За счет кого комисии(0-Ваши,1-Корр,2-Обеих)

 [18 ] Код платежа(можно заполнить пробелами)

 [35 ] Банк посредника в клиринговой системе(можно пробелы)значение

 [ 1 ] Счет или банк получателя в клиринговой системе(0/1) признак

 [35 ] Счет или банк получателя в клиринговой системе(можно пробелы)значение

 [ 1 ] Способ оповещения бенефициара любым/по наиболее эфект/по телефону(0/1/2)

 [191] Сообщение бенефициару(можно пробелы)

 [35 ] Счет клиента для списания комисий

 [ 3 ] Числовой идентификатор валюты счета клиента для списания комисий

 [119] Резерв(можно заполнить пробелами)

 [50 ] Сообщение об ошибке приема(заполняется программой приема)

 [ 2 ] \r\n перевод строки



 Длина текстовой строки 1280 байта.


4.1 Описание работы протокола обмена для "iceb_server"

Работа начинается с открытия сервера. В ответ на установку соединения сервер отвечает строкой :

    OK MARIA V1.0

    где 

"OK" - сигнатура

"MARIA" - название устройства

"V1.0" - версия ПО
После этого сервер готов к приему комманд. Каждая комманда начинается ключевым словом FSTART: затем через пробел следует название команды и перевод строки. Все параметры для комманды передаются в символьном виде и завершаются переводом строки.
Завершает ввод параметров ключевое слово FEND:
Сервер отвечает строкой с числовым кодом завершения операции в случае успеха или строками:

ERROR - ошибочное число параметров в комманде

ERROR FUNC - ошибочная комманда после FSTART:

ERROR CMD - ошибочное ключевое слово
Завершение работы сервера происходит по комманде FQUIT: Сервер выдает строку QUIT и закрывает соединение.
Реализованные комманды в версии 1.0
ADD_CHECK функция создания и печати чеков MARIA_PRCHECK печать чека на фискальном принтере

МАРИЯ-301 MARIA_INDICATOR вывод сообщения на индикатор кассового

регистратора MARIA_LINEFEED прогнать чековую ленту MARIA_DAY_REPORT формирование и печать дневного отчетного

чека MARIA_DATE_REPORT формирование и печать отчетного чека за

указанный период времени MARIA_SETCHECK формирование внешнего вида чека MARIA_NALOG запрограмировать налог MARIA_REGINFO запрограмировать регистрационную

информацию о владельце MARIA_VALUTA запрогамировать валюту MARIA_TIME установить часы реального времени (не

более +- 1 час) MARIA_NULL напечатать нулевой чек (для проверки

введенных настроек кассового регистратора) MARIA_SLUG служебное внесение/изъятие FREE_CHECK


Для работы с сервером из программы-клиента существуют след.функции :

        
Назначение: Открытие соединения с сервером.
Результат : Дескриптор соединения или ICEB_GET_ERROR в случае ошибки

#define ICEB_GET_ERROR -1
icebcon iceb_open_server
(
char *server_name                //Имя хоста,доступное через DNS или /etc/host
);


Назначение: Послать строку на сервер
Результат : Число посланных байт  или ICEB_GET_ERROR в случае ошибки
                
int iceb_write_to_server
(
icebcon conection_id,        // Дескриптор соединения
char *cmd                  // Строка данных
);


Назначение: Прочитать строку ответа сервера
Результат : Число принятых байт или ICEB_GET_ERROR в случае ошибки

int iceb_read_from_server
(
icebcon conection_id,         // Дескриптор соединения
char *server_answer,        // Буфер для приема ответа
int count                // Размер буфера
);

Назначение: Закрыть соединение с сервером
Результат : всегда 0

int iceb_close_server(icebcon conection_id);


Назначение: Получить код последней ошибки
Результат : целое число 

int iceb_get_last_error()

ICEB_ERROR_NONE 0              нет ошибок
ICEB_ERROR_HOST_NOT_FOUND 1    хост не найден
ICEB_ERROR_SERVICE_NOT_FOUND 2 нет такого номера порта
ICEB_ERROR_CREATE_SOCKET 3     не может создать сокет
ICEB_ERROR_CONNECT_HOST 4      не может соединиться с

сервером ICEB_ERROR_SEND_HOST 5 не смог послать данные ICEB_ERROR_SEND_DATA 6 во время посылки

сообщения разорвалось сетевое соединение ICEB_ERROR_READ_DATA 7 не смог прочитаь данные ICEB_ERROR_LARGE_BLOCK 8 размер буфера для приема

данных меньше чем необходимо ICEB_ERROR_INVALID_HANDLE 9 не отрыл сервер или

неправильный дескриптор ICEB_ERROR_NO_MORE_HANDLE 10 при открытии сервера

закончились дескрипторы


Next Previous Contents