Не печатается слип-чек терминала

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
duzorg
Сообщения: 41
Зарегистрирован: 18 сен 2017, 12:02

Не печатается слип-чек терминала

Сообщение duzorg » 28 янв 2021, 13:58

Здравствуйте. Столкнулись с такой проблемой. Сбер поставил терминал PAX SP30. Соответственно только сам пинпад, принтера нет. Всё подключили, настроили, оплаты и возвраты проходят.
В настройках ККТ на ККМСервере в Автоматический эквайринг выставлено слип чек в чеке, дополнительный слип чек для кассира. В итоге при проведении оплаты ни в самом чеке нет слипа и плюс отдельно сантиметровый кусок кассовой ленты пустой. При этом с эмулятором всё работает как надо. Не подскажете в чём может быть проблема? API пробовали и 8 и 12.

duzorg
Сообщения: 41
Зарегистрирован: 18 сен 2017, 12:02

Re: Не печатается слип-чек терминала

Сообщение duzorg » 28 янв 2021, 15:27

Разобрался. В файле настроек терминала pinpad.ini надо было раскомментировать строку с одним из принтеров.

duzorg
Сообщения: 41
Зарегистрирован: 18 сен 2017, 12:02

Re: Не печатается слип-чек терминала

Сообщение duzorg » 29 янв 2021, 13:02

Теперь возникла другая ситуация. Если по одной карте были 2 продажи на одинаковую сумму, то возврат сделать не получается. Терминал при попытке возврата просто высвечивает белый экран, а через минуту выдаёт
"2000 (Отказано) : Операция прервана нажатием клавиши ОТМЕНА. Другая возможная причина – не проведена предварительная сверка итогов, и на терминале еще нет сеансовых ключей."

Если по карте были платежи на разную сумму, то всё проходит без ошибок.

Если сделать по одной карте 2 продажи через интерфейс самого kkmserver, а потом сделать возвраты, то первая операция отменяется, а вторая идёт на возврат.

Команда, которая отсылается на продажу:

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

Текст команды:
IdType: RrElectro, IdModel: 24, ver: 2.1.40.40, Width: 48, Firmware: 60325 от 24.10.2018, IP client: [::ffff:127.0.0.1]:54143
{"Command":"RegisterCheck","NumDevice":"1","IsFiscalCheck":true,"NotPrint":false,"TypeCheck":0,"CheckStrings":[{"PrintText":{"Text":">#2#<\u041e\u041e\u041e \"\u041a\u0443\u0437\u043d\u0435\u0446\u043a\u0421\u043f\u0435\u0446\u0422\u0440\u0430\u043d\u0441\""}},{"PrintText":{"Text":">#2#<\u0422\u0435\u0441\u0442\u043e\u0432\u0430\u044f"}},{"PrintText":{"Text":">#2#<\u0433. \u041d\u043e\u0432\u043e\u043a\u0443\u0437\u043d\u0435\u0446\u043a, \u0448. \u041a\u043e\u043d\u0434\u043e\u043c\u0441\u043a\u043e\u0435, 6\u0430 \u043a8"}},{"BarCode":{"BarcodeType":"CODE128","Barcode":"00000000000000693257"}},{"PrintText":{"Text":">#2#<0000 0000 0000 0069 3257"}},{"PrintText":{"Text":"<<->>"}},{"Register":{"Name":"\u0421\u043c\u0435\u0442\u0430\u043d\u0430 30 \u0433\u0440","Quantity":1,"Price":6,"Amount":6,"Department":0,"Tax":-1,"SignMethodCalculation":4,"SignCalculationObject":1,"EAN13":"","MeasurementUnit":"","NomenclatureCode":"","AgentSign":null,"AgentData":null,"PurveyorData":null},"EndPage":false},{"PrintText":{"Text":"<<->>"}}],"CashierName":"\u041f\u043e\u043b\u0438\u0432\u0430\u043d\u043e\u0432 \u0410\u043d\u0434\u0440\u0435\u0439 \u0413\u0440\u0438\u0433\u043e\u0440\u044c\u0435\u0432\u0438\u0447","CashierVATIN":"000000000000","SenderEmail":null,"Cash":0,"ElectronicPayment":6,"AdvancePayment":0,"Credit":0,"CashProvision":0,"IdCommand":"f0d33cca-89ce-c100-a962-e2917d264022"}

Текст ошибки:

Время выполнения команды:00:13.593757
Текст ответа:
{"CheckNumber":100,"SessionNumber":8,"SessionCheckNumber":35,"URL":"https://receipt.taxcom.ru/v01/show?fp=2219471214&s=6.00","QRCode":"t=20210129T123100&s=6.00&fn=9999078900011489&i=100&fp=2219471214&n=1","Cash":0.0,"ElectronicPayment":6.0,"AdvancePayment":0.0,"Credit":0.0,"CashProvision":0.0,"RezultProcessing":{"CardNumber":"************3384","ReceiptNumber":"","RRNCode":"843450338634","AuthorizationCode":"095699","Slip":" АВТОМОЙКА \r\nг. Новокузнецк, Кемеровская обла\r\nш. Кондомское, Центральный р-н, \r\n 6а \r\n29.01.21 12:31 ЧЕК 0001\r\n Оплата \r\nТерминал: 23035100\r\nМерчант: 260000098622\r\nMASTERCARD A0000000041010\r\nКарта:(E1) ************3384\r\nКлиент: \r\nСумма (Руб):\r\n 6.00\r\nКомиссия за операцию - 0 Руб.\r\n ОДОБРЕНО\r\nКод авторизации: 095699\r\nНомер ссылки: 843450338634\r\n Подпись клиента не требуется \r\nAF20C5EAEB6910AE389BAD6C001E91E8\r\n================================\r\n","PrintSlipOnTerminal":false,"Amount":6.0,"CardHash":"8005724388A7ADD07F2CD46E28037047CE34A802","TransDate":"2021-01-29T12:31:09","TerminalID":"23035100","Command":"PayByPaymentCard","Error":"","Warning":"","Message":"","Status":0,"IdCommand":"dc65a444-3795-42a1-b6e2-d605aef25f11","NumDevice":2},"Command":"RegisterCheck","Error":"","Warning":"","Message":"","Status":0,"IdCommand":"f0d33cca-89ce-c100-a962-e2917d264022","NumDevice":1}
Команда, которая отсылается на возврат:

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

Текст команды:
IdType: RrElectro, IdModel: 24, ver: 2.1.40.40, Width: 48, Firmware: 60325 от 24.10.2018, IP client: [::ffff:127.0.0.1]:54179
{"Command":"RegisterCheck","NumDevice":"1","IsFiscalCheck":true,"NotPrint":false,"TypeCheck":1,"CheckStrings":[{"PrintText":{"Text":">#2#<\u041e\u041e\u041e \"\u041a\u0443\u0437\u043d\u0435\u0446\u043a\u0421\u043f\u0435\u0446\u0422\u0440\u0430\u043d\u0441\""}},{"PrintText":{"Text":">#2#<\u0422\u0435\u0441\u0442\u043e\u0432\u0430\u044f"}},{"PrintText":{"Text":">#2#<\u0433. \u041d\u043e\u0432\u043e\u043a\u0443\u0437\u043d\u0435\u0446\u043a, \u0448. \u041a\u043e\u043d\u0434\u043e\u043c\u0441\u043a\u043e\u0435, 6\u0430 \u043a8"}},{"PrintText":{"Text":"<<->>"}},{"Register":{"Name":"\u0421\u043c\u0435\u0442\u0430\u043d\u0430 30 \u0433\u0440","Quantity":1,"Price":6,"Amount":6,"Department":0,"Tax":-1,"SignMethodCalculation":4,"SignCalculationObject":1,"EAN13":"","MeasurementUnit":"","NomenclatureCode":"","AgentSign":null,"AgentData":null,"PurveyorData":null},"EndPage":false},{"PrintText":{"Text":"<<->>"}}],"CashierName":"\u041f\u043e\u043b\u0438\u0432\u0430\u043d\u043e\u0432 \u0410\u043d\u0434\u0440\u0435\u0439 \u0413\u0440\u0438\u0433\u043e\u0440\u044c\u0435\u0432\u0438\u0447","CashierVATIN":"000000000000","SenderEmail":null,"Cash":0,"ElectronicPayment":6,"AdvancePayment":0,"Credit":0,"CashProvision":0,"RRNCode":"843450338634","AuthorizationCode":"095699","IdCommand":"afdcb076-cf6d-46b6-020d-623cd8a66905"}
Текст ошибки:
Не выполнена транзакция по оплате: 2000 (Отказано) : Операция прервана нажатием клавиши ОТМЕНА. Другая возможная причина – не проведена предварительная сверка итогов, и на терминале еще нет сеансовых ключей.

Время выполнения команды:02:03.046995
Текст ответа:
{"Cash":0.0,"ElectronicPayment":6.0,"AdvancePayment":0.0,"Credit":0.0,"CashProvision":0.0,"RezultProcessing":{"CardNumber":"","ReceiptNumber":"","RRNCode":"","AuthorizationCode":"","Slip":"","PrintSlipOnTerminal":false,"Amount":0.0,"Command":"ReturnPaymentByPaymentCard","Error":"2000 (Отказано) : Операция прервана нажатием клавиши ОТМЕНА. Другая возможная причина – не проведена предварительная сверка итогов, и на терминале еще нет сеансовых ключей.","Warning":"","Message":"","Status":2,"IdCommand":"d5f92416-1668-4f4e-a919-66799411fc5f","NumDevice":2},"Command":"RegisterCheck","Error":"Не выполнена транзакция по оплате: 2000 (Отказано) : Операция прервана нажатием клавиши ОТМЕНА. Другая возможная причина – не проведена предварительная сверка итогов, и на терминале еще нет сеансовых ключей.","Warning":"","Message":"","Status":2,"IdCommand":"afdcb076-cf6d-46b6-020d-623cd8a66905","NumDevice":1}
В логах сбера (с папки sc) тоже вроде ничего критичного

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

29.01 13:38:22 SBKRNL: Close com 3
29.01 13:38:22 SBKRNL: Result  = 2000
29.01 13:38:22 GATE: unlock:'000009A4'
29.01 13:38:22 GATE: lock:'00002500' 'UPOSWINMUTEX2'
29.01 13:38:22 GATE: unlock:'00002500'
29.01 13:38:22 GATE: Unloaded 'sb_kernel.dll' (CC30000)
29.01 13:38:22 PILOT: Unloaded 'gate.dll' (F00000)
29.01 13:38:22 PILOT: card_authorize12: result=2000, RC=99, cheque=No, vas=0
29.01 13:38:22 PILOT: Dump[000..255):03000000C8000000393900CEF2EAE0E7E0EDEE000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D00700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000962CA58400000000000000
29.01 13:38:22 PILOT: Dump[255..265):00000000000000000000
29.01 13:38:35 PILOT: GetTerminalID:
29.01 13:38:35 PILOT: Loaded 'C:\sc552\gate.dll' (F00000)
29.01 13:38:35 GATE: lock:'00001C04' 'UPOSWINMUTEX2'
29.01 13:38:35 GATE: Loaded 'C:\sc552\sb_kernel.dll' (CC30000)
29.01 13:38:35 GATE: unlock:'00001C04'
29.01 13:38:35 GATE: lock:'000009A4' 'UPOSWINMUTEX2'
29.01 13:38:35 SBKRNL: Open com 3 (115200)
29.01 13:38:35 SBKRNL: Pinpad status timeout 0 s
29.01 13:38:35 SBKRNL: WaitPinpadSeconds=0
29.01 13:38:35 SBKRNL: WaitPinpadSeconds=0
29.01 13:38:35 SBKRNL: Start tmo 140200
29.01 13:38:35 SBKRNL: Close com 3
29.01 13:38:35 GATE: unlock:'000009A4'
29.01 13:38:35 PILOT: GetTerminalID: result=0, TID=23035100
29.01 13:38:35 PILOT: card_authorize12: track2=Q, TRType=3, CType=0, Amount=200
29.01 13:38:35 PILOT: Dump[000..255):03000000C800000000000000000000000000000000000000000000000000000000000032343634393100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000313032
29.01 13:38:35 PILOT: Dump[255..265):39383432343332343000
29.01 13:38:35 GATE: lock:'00001C04' 'UPOSWINMUTEX2'
29.01 13:38:35 GATE: unlock:'00001C04'
29.01 13:38:35 GATE: lock:'000009A4' 'UPOSWINMUTEX2'
29.01 13:38:35 SBKRNL: Command = 4002, Amount = 2.00, RRN = 102984243240, Department = 1, additional data = 510000...000000
29.01 13:38:35 SBKRNL: Open com 3 (115200)
29.01 13:38:36 SBKRNL: Pinpad status timeout 0 s
29.01 13:38:36 SBKRNL: WaitPinpadSeconds=0
29.01 13:38:36 SBKRNL: WaitPinpadSeconds=0
29.01 13:38:36 SBKRNL: Start tmo 140200
29.01 13:38:40 SBKRNL: Connecting to port 670
29.01 13:38:40 SBKRNL: Connect OK
29.01 13:38:42 SBKRNL: Close socket
29.01 13:38:45 SBKRNL: Close com 3
29.01 13:38:45 SBKRNL: Result  = 0, Amount = 2.00, Card = '************0374'
29.01 13:38:45 GATE: unlock:'000009A4'
29.01 13:38:45 GATE: lock:'000009A4' 'UPOSWINMUTEX2'
29.01 13:38:45 GATE: unlock:'000009A4'
29.01 13:38:45 GATE: lock:'000009A4' 'UPOSWINMUTEX2'
29.01 13:38:45 GATE: unlock:'000009A4'
29.01 13:38:45 GATE: lock:'00001C04' 'UPOSWINMUTEX2'
29.01 13:38:45 GATE: unlock:'00001C04'
29.01 13:38:45 GATE: Unloaded 'sb_kernel.dll' (CC30000)
29.01 13:38:45 PILOT: Unloaded 'gate.dll' (F00000)
29.01 13:38:45 PILOT: card_authorize12: result=0, RC=0, cheque=Yes, vas=0
29.01 13:38:45 PILOT: Dump[000..255):03000000C8000000300000CEE4EEE1F0E5EDEE000000000000000001000000D8419306323436343931002A2A2A2A2A2A2A2A2A2A2A2A303337340000000000000000000000000031333A31313A30362032392E30312E32303231000800000001000000353731343441363433363135414444443941384545343430453836373132384239413944423236320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B4CA78400000000313032
29.01 13:38:45 PILOT: Dump[255..265):39383432343332343000

Аватара пользователя
saratovout
Сообщения: 260
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Не печатается слип-чек терминала

Сообщение saratovout » 29 янв 2021, 13:36

duzorg писал(а):
29 янв 2021, 13:02
Теперь возникла другая ситуация. Если по одной карте были 2 продажи на одинаковую сумму, то возврат сделать не получается. Терминал
Терминал ждёт ввода RRN (вводится на ПК).
Видимо у вас программа запущена как служба и вы не видите это окно.

Такая же ситуация будет при возврате после закрытия терминальной смены или втором возврате по карте клиентаи и т.д.
Последний раз редактировалось saratovout 29 янв 2021, 13:42, всего редактировалось 1 раз.
good films make your life better..

duzorg
Сообщения: 41
Зарегистрирован: 18 сен 2017, 12:02

Re: Не печатается слип-чек терминала

Сообщение duzorg » 29 янв 2021, 13:41

При этом, если kkmserver запущен не как служба, а как простое приложение, то выводится интерфейс сбербанка для выбора операции, которую надо отменить. Но в чём смысл, если в команде передаётся RRNCode и AuthorizationCode, он разве по ним не должен определять о какой операции идёт речь?
И ещё обратил внимание, что при создании RegisterCheck на возврат и указании RRNCode и AuthorizationCode, создаётся не CancelPaymentByPaymentCard, как указано в документации, а ReturnPaymentByPaymentCard. Но если вручную сделать именно Cancel, то всё проходит успешно.

duzorg
Сообщения: 41
Зарегистрирован: 18 сен 2017, 12:02

Re: Не печатается слип-чек терминала

Сообщение duzorg » 29 янв 2021, 13:42

saratovout писал(а):
29 янв 2021, 13:36
duzorg писал(а):
29 янв 2021, 13:02
Теперь возникла другая ситуация. Если по одной карте были 2 продажи на одинаковую сумму, то возврат сделать не получается. Терминал
Терминал ждёт ввода RRN (вводится на ПК).
Видимо у вас программа запущена как служба и вы не видите это окно.

Такая же ситуация будет при возврате после закрытия терминальной смены или втором возврате по карте клиентаи и т.д.
Очевидно да, но я передал RRNCode в команде RegisterCheck

Аватара пользователя
saratovout
Сообщения: 260
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Не печатается слип-чек терминала

Сообщение saratovout » 29 янв 2021, 13:52

duzorg писал(а):
29 янв 2021, 13:41
в команде передаётся RRNCode и AuthorizationCode,
Попробуйте не указывать Auth.
Вообще, это зависит от версии ПО терминала и прописанных в нем настройках.

duzorg писал(а):
29 янв 2021, 13:41
при создании RegisterCheck на возврат и указании RRNCode и AuthorizationCode, создаётся не CancelPaymentByPaymentCard, как указано в документации, а ReturnPaymentByPaymentCard. Но если вручную сделать именно Cancel, то всё проходит успешно.
Лучше использовать отдельные команды и отрабатывать в своем приложении. Так вы будете больше контролировать происходящее..
good films make your life better..

duzorg
Сообщения: 41
Зарегистрирован: 18 сен 2017, 12:02

Re: Не печатается слип-чек терминала

Сообщение duzorg » 29 янв 2021, 14:06

saratovout писал(а):
29 янв 2021, 13:52
Попробуйте не указывать Auth.
Вообще, это зависит от версии ПО терминала и прописанных в нем настройках.
Нет так тоже не проходит.
saratovout писал(а):
29 янв 2021, 13:52
Лучше использовать отдельные команды и отрабатывать в своем приложении. Так вы будете больше контролировать происходящее..
С одной стороны да, но всё же судя по документации KKMServer он сам должен делать именно отмену, если указан RRNCode.

Аватара пользователя
saratovout
Сообщения: 260
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Не печатается слип-чек терминала

Сообщение saratovout » 29 янв 2021, 15:04

duzorg писал(а):
29 янв 2021, 14:06
судя по документации KKMServer он сам должен делать именно отмену, если указан RRNCode.
Практика это не подтверждает.
duzorg писал(а):
29 янв 2021, 14:06
Нет так тоже не проходит.
Вы лазали в настройки PAX? У вас есть такая возможность?
Банк может удаленно их перезаписывать..
good films make your life better..

duzorg
Сообщения: 41
Зарегистрирован: 18 сен 2017, 12:02

Re: Не печатается слип-чек терминала

Сообщение duzorg » 29 янв 2021, 15:21

saratovout писал(а):
29 янв 2021, 15:04
Вы лазали в настройки PAX? У вас есть такая возможность?
Банк может удаленно их перезаписывать..
Нет. Я имел ввиду, что попробовал не указывать AuthCode в команде, которая передаётся kkmserver'y

Ответить