Не распознаётся код отреза слип чека при эквайринге.

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
avk1973
Сообщения: 6
Зарегистрирован: 07 мар 2019, 15:52

Не распознаётся код отреза слип чека при эквайринге.

Сообщение avk1973 » 07 мар 2019, 16:06

Добрый день.
Подскажите, может кто-нибудь сталкивался с подобной проблемой.
Подключен эквайринг от сбербанка
Терминал SP30 производства PAX Computer Technology.
ККМ- Штрих-01Ф, с последней прошивкой.

При печати слип-чека экваринга (который как я понимаю формирует терминал) не распознаётся код отреза, какое бы значение не устаналивал в обеих устройствах (по умолчанию в обоих стояло 22). В результате покупателю и кассиру приходится отдавать "сдвоенные" слип чеки.

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

[Наименование организации]           
         г.Владивосток          
       [Адрес]       
               т. (...)
07.03.19     18:08    ЧЕК   0001
             Оплата             
Терминал:               10972339
Мерчант:            500000000795
MIR Credit        A0000006581010
Карта:(E)       ************9385
Клиент:         XXXXXX/XXXXXXXXX
Сумма (Руб):
            1.00
Комиссия за операцию - 0 Руб.
            ОДОБРЕНО
Код авторизации:          228116
Номер ссылки:       906608599388
 Подпись клиента не требуется  
E7709703624DD20AC38B1B83F54041AD
================================



~S"         [Наименование организации]           
         г.Владивосток          
       [Адрес]       
Копия 1 
07.03.19     18:08    ЧЕК   0001
             Оплата             
Терминал:               10972339
Мерчант:            500000000795
MIR Credit        A0000006581010
Карта:(E)       ************9385
Клиент:         XXXXXX/XXXXXXXXX
Сумма (Руб):
            1.00
Комиссия за операцию - 0 Руб.
            ОДОБРЕНО
Код авторизации:          228116
Номер ссылки:       906608599388
 Подпись клиента не требуется  
E7709703624DD20AC38B1B83F54041AD
================================

Возможно проблема в том, что код разреза в слип-чеке печатается на той же строке, что и наименование организации?

Audim
Администратор
Сообщения: 1718
Зарегистрирован: 17 мар 2015, 18:36

Re: Не распознаётся код отреза слип чека при эквайринге.

Сообщение Audim » 07 мар 2019, 23:33

В каталоге установки ПО сбербанка найдите файл "pinpad.ini"
В нем ключ "PrinterEnd"

Сейчас почему-то сбербанк стал ставить аж три символа на отрез: PrinterEnd=010D0A
Замените на PrinterEnd=16 (22 в шестнатиричной системе)

В kkmserver поставьте 22.

avk1973
Сообщения: 6
Зарегистрирован: 07 мар 2019, 15:52

Re: Не распознаётся код отреза слип чека при эквайринге.

Сообщение avk1973 » 09 мар 2019, 06:02

Добрый день, спасибо за совет, но к сожалению не помогло.
У нас касса, как я понимаю выдаёт 3 символа.
~ (126)
S(183)
и последним символ из pinpad.ini (я пробовал разные, 0,1,16)
Почему-то у ккм-сервера не получается распознать эту строку.
Перепробовал даже трюки, наподобие PrinterEnd=0D0A16 (\r\n_) или попытка настроить сработку отреза на ~S
Может быть это как-то связано с тем, что принтеры пока работают в нефискальном режиме?

Вот что выдаёт слип-чек в json при PrinterEnd=16

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

CardNumber": "************9385",
    "ReceiptNumber": "TEST-01",
    "RRNCode": "906800564378",
    "AuthorizationCode": "228121",
    "Slip": "          ***  \r\n        т. (8423)000000        \r\n09.03.19     10:20    ЧЕК   0006\r\n             Отмена             \r\nТерминал:               10972339\r\nМерчант:            500000000795\r\nMIR Credit        A0000006581010\r\nКарта:(E)       ************9385\r\nКлиент:         ***/ALEKSANDR\r\nСумма (Руб):\r\n           10.00\r\nКомиссия за операцию - 0 Руб.\r\n            ОДОБРЕНО\r\nКод авторизации:          228121\r\nНомер ссылки:       906800564378\r\n================================\r\n\r\n\r\n\r\n~S\u0016           ***        \r\n        т. (8423)000000        \r\nКопия 1 \r\n09.03.19     10:20    ЧЕК   0006\r\n             Отмена             \r\nТерминал:               10972339\r\nМерчант:            500000000795\r\nMIR Credit        A0000006581010\r\nКарта:(E)       ************9385\r\nКлиент:         ***/ALEKSANDR\r\nСумма (Руб):\r\n           10.00\r\nКомиссия за операцию - 0 Руб.\r\n            ОДОБРЕНО\r\nКод авторизации:          228121\r\nНомер ссылки:       906800564378\r\n================================\r\n\r\n\r\n\r\n~S\u0016",
    "PrintSlipOnTerminal": false,
    "Amount": 10,
    "Command": "CancelPaymentByPaymentCard",
    "Error": "",
    "Status": 0,
    "IdCommand": "5f47b355-40d8-a20e-7913-2590114b2cd9",
    "NumDevice": 5

Audim
Администратор
Сообщения: 1718
Зарегистрирован: 17 мар 2015, 18:36

Re: Не распознаётся код отреза слип чека при эквайринге.

Сообщение Audim » 09 мар 2019, 20:16

Должно 16 помочь - всем клиентам так делаю - работает.
Попробуйте еще так-же заменить в "printers.ini"

avk1973
Сообщения: 6
Зарегистрирован: 07 мар 2019, 15:52

Re: Не распознаётся код отреза слип чека при эквайринге.

Сообщение avk1973 » 11 мар 2019, 16:05

Не помогает.
Изменения в printers.ini вообще не влияют на выдачу из эквайринга.
Сберабанковский драйвер реагирует только на изменения в pinpad.ini, причём указанное в PrinterEnd значение , он он возвращает значение в юникоде (в поле Slip)
"... \r\n~S\u0016\r\n"
Если ставишь 2,3 и более байта- соответственно всех их прописывает в юникоде.
Это нормально?

Такое впечатление, что ккм сервер вообще не реагирует на эту строку. Может ли это быть связано с тем, что временно указан "нефискальный" режим (система только тестируется).

Audim
Администратор
Сообщения: 1718
Зарегистрирован: 17 мар 2015, 18:36

Re: Не распознаётся код отреза слип чека при эквайринге.

Сообщение Audim » 11 мар 2019, 21:04

Пришлите доступ по тимвьювер в почту - зайду посмотрю

avk1973
Сообщения: 6
Зарегистрирован: 07 мар 2019, 15:52

Re: Не распознаётся код отреза слип чека при эквайринге.

Сообщение avk1973 » 12 мар 2019, 14:43

Спасибо. Выслал.
Похоже у нас все-таки какие-то проблемы с терминалом, новая версия вообще не хочет проводить с ним чеки.

avk1973
Сообщения: 6
Зарегистрирован: 07 мар 2019, 15:52

Re: Не распознаётся код отреза слип чека при эквайринге.

Сообщение avk1973 » 12 мар 2019, 18:07

Большое спасибо создателю программы, за огромную помощь в решении проблем с настройкой.

Советы для тех, кто в будущем столкнётся с подобной проблемой:

1) Как уже выше отмечалось, коды в pinpad.ini задаются в 16-ричной кодироке, а в ККМ-сервере в 10-тичной. Лучше всего везде ставить 1, точно не ошибётесь ;). По умолчанию в сбере могут стоять непредсказуемые значения, у нас, например, было EndPrint=22 (соотвествует 34м в десятичной кодировке). 00 софт сбера воспринимает как признак окончания строки или пустую строку если это первый символ.

2) Отключите галочку "Устранить ошибку дублирования слип-чеков". Она может "мешать" распознаванию кода отреза, что у нас и происходило.

3) Для тех, кто хочет обработать поле Slip вручную, учтите, что байты из поля PrintEnd могут возвращаться в utf-формате (но не всегда). Например PrintEnd=0D0A16 вернётся как /r/n\u0016, а PrintEnd=010216, как \u0001\u0002\u0016. Символ 00 и следующие за ним будут проигнорированы.

4) При работе с эквайрингом, если есть возможность, не запускайте kkm как вин-службу, вы лишитесь полезных информационных окошек, а также не сможете вернуть оплату после закрытия смены, т.к. не будет выскакивать запрос о коде платежа.

Ответить