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

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

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

Сообщение Audim » 19 дек 2021, 04:02

2.2.14.12 от 19.04.2022 новое в версии: СБП, История операций, Окна в расширении, Linux

Linux, MacOS:

Избавились от тяжелого наследия Windows:
Т.е. избавились от зависимости к библиотеке libgdiplus - которая некоторым попила много крови.
Теперь библиотеки генерации штрих-кодов и работы с изображениями встроены в сам kkmserver.


СБП (Система быстрых платежей):

Немного общей информации об оплате QR кодами
Есть три системы:

1. QR код в котором зашиты поля платежки.
Достоинства:
- Понимают все системы, программы, банкоматы.
- Не нужно заключать договор на эквайринг
Недостатки:
- Платеж идет как обычная платежка - т.е. долго, и само главное - нет ни какой возможности проверить что оплата прошла - только получив и обработав выписку из банка.
- Возня клиента с мобильником - но это у всех систем

2. Системы различных баков
Достоинства:
- Проверить оплату можно быстро.
Недостатки:
- Вселенная только одного банка
- Нет стандарта - для каждого банка все по своему
- Возня клиента с мобильником - но это у всех систем

3. СБП -Система быстрых платежей от ЦБ:
Достоинства:
- Понимают все крупные банки, если в системе банка нет оплаты по СБП то есть отдельная программа для мобильников:
- Приложение для оплаты по QR коду на мобильнике: https://sbp.nspk.ru/sbpay/
- Проверка что оплата клиентом произведена происходит тут-же
- Возможность отменить QR код (что и происходит если клиент не оплатил) - для того чтобы потом случайно не было оплаты по этой продаже.
- Возможность получать отчет по проведенным оплатам за смену
Недостатки:
- Нужно заключать договор на эквайринг (мерчант)
- Возня клиента с мобильником - но это у всех систем

Общая информация о системе быстрых платежей:
https://sbp.nspk.ru/business/

Мы реализовали СБП с эквайрингом от Сбербанка:
- Реализовано как еще один протокол эквайрингового терминала
- API - без изменения (для эквайринговых терминалов): https://kkmserver.ru/KkmServer#PrimerPaymentCard
- При работе сгененрированный QR код оплаты можно вывести на экран (и показать его клиенту) или напечатать маленький не фискальный чек с этим QR и отдать его клиенту для оплаты.

Регистрация СПБ в сбербанке (Те у кого там нет договора на эквайринг):
- https://www.sberbank.ru/ru/s_m_business ... ce/platiqr
- Там нужно выбрать "На сайте или в приложении":

Регистрация СПБ для Для клиентов Сбер-Бизнес:
- https://www.sberbank.ru/help/business/sbbol/100013
- Выбирать оборудование там не нужно, сразу заполняйте "Торговая точка"

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


Окна в расширении:

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

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

Но вот если Ваша система работает через расширение для браузера то совсем другое дело:
Мы сделали 3 вещи:

1. Расширение для браузера прежде чем отправить команду на выполнение проверит сначала на скольких устройствах может быть выполнена команда.
И если таких устройств больше одного - то на страничке в браузере будет выведено окно о выборе устройства для выполнения команды.

2. При выполнении команды Расширение для браузера покажет окошко-информацию что команда выполняется.
Особенно это полезно для приема платежей - команда может висеть долго и пользователь может забыть что у него идет транзакция.
Так-же в этом окошке для некоторых устройств (которые это поддерживают - например для СБП) можно прервать операцию

3. При подаче команды на регистрацию чека:
если в команде указана оплата по безналу и в настройках kkmserver указано разрешение для проведения транзакции "от чека"
будет открыто специальное окно.
- В этом окне пользователь может указать - нужно но ли на какую сумму нужно провести транзакцию
- Собственно провести саму транзакцию без печати чека (только слип)
- если необходимо то можно провести несколько транзакций, или при ошибке - повторно провести транзакцию
- И после приема всех оплат напечатать сам кассовый чек.
Т.е. все то что ленятся делать разработчики систем/Сайтов

ЗЫ: все окошки можно отключить в окне настройки расширения.


История операций:

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


Оплата картой:

В меню настроек kkmserver мы добавили пункт "Оплата картой".
Предназначена для аварийного проведения операций по эквайрингу.
Аналогично пункту "Регистрация чека"


2.2.12.10 от 17.03.2022 новое в версии: Печать на чековую ленту

Че-то у всех резко закончилась бумажная чековая лента.
(Вот мне интересно куда она делась?)

Из за этого добавил в настройки ККТ параметр:
"Печать чека и отчета на ленте:"
Там можно выбрать:

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

            "Из команды. Если там нет - Печатать на ленте." (по умолчанию)
            "Из команды. Если там нет - Не печатать на ленте."
            "Из команды. Если там нет - Не печатать. Но печатать отчеты."
            "Всегда печатать на ленте. Признак из команды игнорировать"
            "Всегда Не печатать на ленте. Признак из команды игнорировать"
            "Всегда Не печатать. Но печатать отчеты. Признак из команды игнорировать"
Т.е. можно настроить в kkmserver чтобы не чего не гнало на ленту.

Но есть нюансы!!!:
- Некоторые ККТ всегда печатают отчеты.
- Некоторые ККТ всегда печатают чеки если ККТ не зарегистрирована на "Интернет продажи"
- Некоторые ККТ всегда печатают чеки если в данных чека нет телефона или email-а клиента
- А у некоторых это еще зависит и от версии прошивки.



2.2.11.14 от 04.01.2022 новое в версии:

Весы:
Добавлена поддержка весов "Атол" по протоколу "Пассивный".

ККТ Атол:
Для всех дистрибутивов добавил возможность работы без установки ДТО (dll ДТО Атола встроен в дистрибутив)

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


2.2.10.43 от 18.12.2021 новое в версии: доработки по эквайрингу

Протокол UCS:
Добавлена возможность работы по USB порту (требуется ПО от UCS)

Протокол INPAS:
При выборе СОМ порта или IP адреса Ethernet - kkmserver будет работать напрямую с терминалом (по протоколу SmartSale), без использования ПО DualConnector

Изменения в API терминалов:
Раньше после транзакции возвращалось куча признаков транзакции:
ase "CN": DataCommand.CardNumber = Val; break;
- ReceiptNumber
- RRNCode
- AuthorizationCode
- CardHash
- CardDPAN
- CardHash
- TransDate
Все эти поля могли понадобится при отмене или возврате транзакции.
В ответе на транзакцию добавлено поле "UniversalID"
В него в читаемом виде записаны все поля транзакции, пример:
"CN:1254********6845;RN:26;RRN:5486265211;AC:783451264186418"
"CN:************5427;RRN:135282495958;AC:219084;CH:BFBE7F701F3533899494869A7D29F46FA2529892"
Это поле после команды "PayByPaymentCard" нужно запоминать.
И в команде возврата, отмены, аварийной отмены - передавать в поле "UniversalID".

Ответить