Новое в версиях

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
Audim
Администратор
Сообщения: 1509
Зарегистрирован: 17 мар 2015, 18:36

Новое в версиях

Сообщение Audim » 01 авг 2018, 02:48

2.1.27.10 от 11.04.2019 новое в версии: Маркировка товаров (Честный знак / КИЗ)

Добавлена поддержка передачи "Кода маркировки товара" (он-же КИЗ "контрольный идентификационный знак", он же "Честный знак")
При передаче фискальной строки можно так-же указать этот КИЗ.
ККТ передаст эту информацию в ОФД как тег 1162.
И по нему ОФД передаст информацию в систему ИСМП https://ismp.crpt.ru,
а та уже дальше по различным системам учета маркированного товара.
Это нужно для автоматического вывода маркированного товара из оборота.

Сейчас поддерживаются следующие товары:
  • Изделия из меха
    Лекарственные препараты
    Табачная продукция
    Обувные товары.
Поддерживаемые протоколы ККТ:
  • Atol: ККТ с передачей данных в ОФД (54-ФЗ)
    Штрих-М: ККТ с передачей данных в ОФД (54-ФЗ)
    RR-Electro: ККТ с передачей данных в ОФД (54-ФЗ)
    Paykiosk.ru: ККТ с передачей данных в ОФД (54-ФЗ)
    СтарРус: ККТ с передачей данных в ОФД (54-ФЗ)
    Micro-Pay (microteh.ru): ККТ с передачей данных в ОФД (54-ФЗ)
    Dreamkas (Viki Print): ККТ с передачей данных в ОФД (54-ФЗ)
    Crystals (Pirit): ККТ с передачей данных в ОФД (54-ФЗ)
    Эмулятор: ККТ с передачей данных в ОФД (54-ФЗ)
НЕ поддерживаемые протоколы ККТ:
  • КИТ (КАСБИ): ККТ с передачей данных в ОФД (54-ФЗ)
    Искра (Прим): ККТ с передачей данных в ОФД (54-ФЗ)
Не поддерживаются из за того что у них ПОКА нет в прошивке возможности передать тег 1162

Изменения в API расширения для браузеров:
После регистрации фискальной строки функцией "AddRegisterString"
нужно вызвать функцию:

Код: Выделить всё

Data.AddGoodCodeData(
  // Тип товара. Список значений: "02" – изделия из меха, "03 - Лекарственные препараты", "05" - табачная продукция, "1520" - обувные товары
  "05",
  // Глобальный идентификатор торговой единицы (GTIN) - поле 01 в GS1
  "98765432101234",
  // Серийный номер КИЗ - поле 21 в GS1
  "ABC1234"
);
Изменения в API расширения http запросов:
В JSON структуре "Register" фискальной строки нужно добавить поле - структуру:

Код: Выделить всё

GoodCodeData: {
  // Тип товара. Список значений: "02" – изделия из меха, "03 - Лекарственные препараты", "05" - табачная продукция, "1520" - обувные товары
  StampType: "02",
  // Глобальный идентификатор торговой единицы (GTIN) - поле 01 в GS1
  GTIN: "04630037591316",
  // Серийный номер КИЗ - поле 21 в GS1
  SerialNumber: "sgEdK2y5"
}
Для понимания того что нас ждет в будущем:
https://xn--80ajghhoc2aj1c8b.xn--p1ai/business/


2.1.26.18 от 24.03.2019 новое в версии:

1. Добавлен протокл эквайринговых терминалов ARCUS-2 (Beta), пока только под Windows.
Если кто-нибудь даст дистрибутив Arcus-а под Linux - сделаю и на нем.

2. Добавил в настройки ККТ крыжик "Установка даты и времени ККТ":
Если он установлен то при закрытии смены дата и время будут установлены в ККТ по времени ПК.
Если на ККТ используется время другой временной зоны - выключите эту функцию.
Почему - "При закрытии смены" а не "при открытии смены"?
Потому что на некоторых ККТ (например Атол) смена открывается автоматом и мне не перехватить это событие.
А вот "закрытие смены" есть везде.


2.1.26.10 от 11.03.2019 новое в версии:

1. Для Принтеров чеков сделана эмуляция регистрации чека.
Есть возможность настроить шаблон чека.
Т.е. на принтер чеков теперь можно подавать точно такие-же команды регистрации чеков как и на ККТ.
Сама по себе эта возможность будет не очень полезна и даже после июля незаконна, но см. п.2.

2. Маршрутизация команд ККТ на другой kkmserver (допустим в облаке)
Т.е. можно на локальном kkmserver для определенного устройства (Принтера чеков или ККТ допустим без ФН) настроить вот так:
- команды поданные на это устройство будут смаршрутизированны на другой kkmserver.
- удаленный kkmserver выполнит регистрацию чека на своем ККТ и вернет фискальные данные чека
- на локальном kkmserver сэмулируется текст чека со всеми фискальными полями и будет напечатан.

Это даст возможность держать в "облаке" один ККТ а бумажные чеки печатать локально на принтерах чеков или на не нужных ККТ без ФН.
При этом такие чеки будут абсолютно законны, т.к. в них содержатся все необходимые фискальные поля. (Закон такое разрешает)

Таким-же образом сработают и остальные команды ККТ: Закрытие/Открытие смены, Внесение/Изъятие ДС, Чеки коррекции.

Для включения маршрутизации сначала включите режим эмуляции чеков.


2.1.25.29 от 06.03.2019 новое в версии:

В команде регистрации чека добавлено поле "PlaceMarket" - место расчетов (тег 1187)
Поле не обязательное, можно не указывать.
Если не указано - то место расчетов берется из данных регистрации ККТ.
Поле применяется например:
- для указания сайта ИМ если ККТ обслуживает сразу несколько ИМ.
- При разъездной торговле

Внимание! Реализовано пока только для ККТ "Атолов" и "MicroPay"
Когда другие производители добавят эту возможность у себя - реализую и у них.


2.1.25.25 от 07.02.2019 новое в версии:

1. В настройки ККТ добавил настройку номера устройства эквайринга (когда эквайринг работает из команды на регистрацию чека)
2. В команду на регистрацию чека добавлено не обязательное поле "NumDeviceByProcessing" через которое можно указать номер устройства для эквайринга.
Null - из настроек на сервере, 0 - любое устройство, число - номер конкретного устройства

2.1.22.19 от 21.09.2018 новое в версии:

1. Добавлен протокол эквайринговых терминалов INPAS (Бета)


2.1.22.17 от 12.09.2018 новое в версии:

1. В обратный вызов по HTTP протоколу добавил заголовки User_Agent, Referer
2. Исправлена ошибка для старых Атолов
3. Исправлена ошибка с полем "UnitName" при получении списка устройств.


2.1.22.14 от 22.08.2018 новое в версии:

В новой версии:

Наконец-то знающие люди подсказали как совместить в одном exe файле терминальное и windows приложение.
Оказалось что это довольно непростая задача.
Именно из за этого мне в свое время пришлось разделить kkmserver на два отдельных продукта: Собственно kkmserver и компонента для расширения.
При этом было очень много ошибок при настройке ПО - когда были запущены сразу и KkmServer и компонента расширения - при этом все конфликтовало между собой.

Теперь я смог в одном приложении совместить сам KKT сервер (работающий по протоколу HTTP/HTTPS) и работу как нативной компоненты для браузеров (работающий по протоколу connectNative).

Соответственно Компонента расширения (но не само расширение - не путать) уходит в небытие.
Ее место занимает KkmServer.

При установке новой версии KkmServer-а он (KkmServer) зарегистрирует на себя вызовы из расширения для браузеров.
Так-же при установке KkmServer скопирует настройки из старой компоненты расширения в следующих случаях:
- если KkmServer до этого не был установлен
- если в настройках KkmServer не настроено ни одного устройства.
В этих случаях настройки копируются из ранее установленной компоненты расширения.

В других случаях может потребоваться (если стояли сразу и Kkmserver и компонента расширения но нужны настройки именно из компоненты) в ручную скопировать файл настройки:
C:\Program Files (x86)\KkmServer.ru\AddIn\Settings\SettingsServ.ini
в KkmServer:
C:\Program Files (x86)\KkmServer.ru\KkmServer\Settings

При этом старую компоненту расширения запускать больше нельзя - иначе она зарегистрирует вызовы из браузера на себя.
Поэтому при установке удалится исполняемый файл расширения.
Но для этого нужно при установке закрыть браузер.

Так-же реализована крос-KkmServer-ая работа :)
Подробнее тут: https://kkmserver.ru/WiKi/StartServer


2.1.21.10 от 31.07.2018 новое в версии:

В новой версии:

1. Добавлена возможность печати не-фискальных чеков на ККТ.
В настройках ККТ появилось два поля:
-"Фискальный/Не-фискальный чек" - собственно выбор какой чек печатать - фискальный или нет.
-"Шаблон не фискального чека" - текстовое поле в котом находится описание шаблона чека.

2. Добавлена поддержка ККТ "Искра"
Поддерживаемые модели: ПРИМ 06-Ф, ПРИМ 08-Ф, ПРИМ 88-Ф, ПРИМ 07-Ф - Бета версия!


2.1.20.16 от 16.07.2018 новое в версии:

1. kkmserver теперь не будет "забывать" ИНН, заводской номер и СНО у ККТ даже если она временно не доступна и не прошла инициализацию при старте.
При подаче на нее команды по этим полям она будет найдена и сервер попытается проинициализировать такую ККТ.
Должно помочь тем кто выключает ККТ и забывает включить.

2. Выложен новый драйвер для 1с: драйвер поддерживает ревизию API 2002.
Этот API 1с не опубликовала, но он уже во всю используется в ее конфигурациях.
Позволяет работать с ККТ по ФФД 1.05/1.1
Если конфигурация относительно старая - то я оставил ссылку на предыдущий драйвер. Но он работает с ККТ только по ФФД 1.0
Так-же в драйвер добавлена поддержка 64-битного тонкого клиента.

2.1.15.10 (11.01.2017) Новое в версии

1. В продукты kkmserver/расширение добавлена возможность работы с эквайринговыми терминалами:

Пока только терминалы сбербанка РФ.
Внутренний драйвер свой собственный - встроенный.
Работает через Pilot_nt.dll, который входит в поставку ПО сбера для терминала.
И эта DLL НЕ COM.Object (как SBRFCOM.dll или sbrf.dll) а нативная windows.
Соответственно она не требует регистрации и ее намного проще настроить.

API работы с эквайриногом в kkmserver точно-такой-же как и в unitserver.
В "Расширении" API расширен - в инжектируемый скрипт добавлены функции работы с эквайрингом.


2: Во всех продуктах добавлена возможность автоматического проведения транзакции по платежной карте через эквайринг при регистрации чека:

Для этого в данные чека можно добавить следующие поля:
КОД: ВЫДЕЛИТЬ ВСЁ
// Эквайринг будет задействован если: 1. чек фискальный, 2. оплата по "ElectronicPayment" не равна 0, 3. PayByProcessing = true
PayByProcessing: true
// Номер чека для эквайринга
ReceiptNumber: "TEST-01",
// Печатать Слип-чек дополнительно для кассира (основной слип-чек уже будет печататся в составе чека)
PrintSlipForCashier: true,
//Если это чек возврата то возможны два поля для отмены транзакции (если не указано то по эквайрингу будет не отмена а возврат оплаты)
RRNCode: "", // RRNCode из операции эквайринга. Только для отмены оплаты! Для Оплаты или возврата оплаты не заполнять!
AuthorizationCode: "", // AuthorizationCode из операции эквайринга. Только для отмены оплаты! Для Оплаты или возврата оплаты не заполнять!

Алгоритм работы такой:
1. Если регистрируемый чек фискальный, в нем есть оплата "ElectronicPayment" и взведен флаг "PayByProcessing" то:
2. Создается и выполняется команда на проведение оплаты через эквайринг. Сумма оплаты = "ElectronicPayment".
2.1 Если транзакция не прошла возвращается ошибка
3. Если транзакция прошла то в данные чека внедряется текст слип-чека (он будет напечатан сразу после шапки чека)
4. Производится регистрация чека.
5. Если регистрация чека успешна то:
5.1 Если нужно печатается дополнительный Слип-чек для кассира (если указан флаг "PrintSlipForCashier")
5.2 В результат выполнения команды регистрации чека дополнительно вставляется структура "RezultProcessing" с данными по проведению транзакции оплаты
6 Если чек не удалось зарегистрировать то:
6.1 Создается команда на аварийную отмену транзакции (Для этого на некоторых терминалах потребуется повторная авторизация платежной карты, на некоторых не потребуется)
6.2 Система возвращает результат транзакции


2.1.18.30 от 28.05.2018 новое в версии:

Только-что выложил версию 2.1.18.30 от 28.05.2018

В этой версии я откатился у VikiPrint к прошивке 660-664 т.к. 670 прошивку отозвали.
Если будите ставить эту версию - откатите у себя до 664.
По ощущениям 664 работает стабильнее чем 670.


2.1.15.10 (11.01.2017) Новое в версии


1. В продукты kkmserver/расширение добавлена возможность работы с эквайринговыми терминалами:

Пока только терминалы сбербанка РФ.
Внутренний драйвер свой собственный - встроенный.
Работает через Pilot_nt.dll, который входит в поставку ПО сбера для терминала.
И эта DLL НЕ COM.Object (как SBRFCOM.dll или sbrf.dll) а нативная windows.
Соответственно она не требует регистрации и ее намного проще настроить.

API работы с эквайриногом в kkmserver точно-такой-же как и в unitserver.
В "Расширении" API расширен - в инжектируемый скрипт добавлены функции работы с эквайрингом.


2: Во всех продуктах добавлена возможность автоматического проведения транзакции по платежной карте через эквайринг при регистрации чека:

Для этого в данные чека можно добавить следующие поля:
КОД: ВЫДЕЛИТЬ ВСЁ
// Эквайринг будет задействован если: 1. чек фискальный, 2. оплата по "ElectronicPayment" не равна 0, 3. PayByProcessing = true
PayByProcessing: true
// Номер чека для эквайринга
ReceiptNumber: "TEST-01",
// Печатать Слип-чек дополнительно для кассира (основной слип-чек уже будет печататся в составе чека)
PrintSlipForCashier: true,
//Если это чек возврата то возможны два поля для отмены транзакции (если не указано то по эквайрингу будет не отмена а возврат оплаты)
RRNCode: "", // RRNCode из операции эквайринга. Только для отмены оплаты! Для Оплаты или возврата оплаты не заполнять!
AuthorizationCode: "", // AuthorizationCode из операции эквайринга. Только для отмены оплаты! Для Оплаты или возврата оплаты не заполнять!

Алгоритм работы такой:
1. Если регистрируемый чек фискальный, в нем есть оплата "ElectronicPayment" и взведен флаг "PayByProcessing" то:
2. Создается и выполняется команда на проведение оплаты через эквайринг. Сумма оплаты = "ElectronicPayment".
2.1 Если транзакция не прошла возвращается ошибка
3. Если транзакция прошла то в данные чека внедряется текст слип-чека (он будет напечатан сразу после шапки чека)
4. Производится регистрация чека.
5. Если регистрация чека успешна то:
5.1 Если нужно печатается дополнительный Слип-чек для кассира (если указан флаг "PrintSlipForCashier")
5.2 В результат выполнения команды регистрации чека дополнительно вставляется структура "RezultProcessing" с данными по проведению транзакции оплаты
6 Если чек не удалось зарегистрировать то:
6.1 Создается команда на аварийную отмену транзакции (Для этого на некоторых терминалах потребуется повторная авторизация платежной карты, на некоторых не потребуется)
6.2 Система возвращает результат транзакции

Ответить