Страница 1 из 1

Окончание бумаги в процессе эквайринга

Добавлено: 22 окт 2018, 19:22
Andy
Окончание бумаги в процессе эквайринга
Возможно сбойный фискальник (бумага в нем была) выдал к процессе печати чека с оплатой ошибку отсутствия бумаги
Чек не напечатан. Но похоже оплата с клиента списалась.

Сбербанковские инженеры спрашивали как настраивать - автоматически сторнировать транзакцию (с марта прошлого года)
или мы сами будем сторнировать её (старый протокол) - не в этом ли дело?


в логах
Текст команды:
IdType: KkmStrihM, IdModel: 22, ver: 2.1.22.25
{Command: "RegisterCheck",NumDevice: "4", IdCommand: "B65477E9-A6CE-4862-9412-9BD0E31E0CA5",IsFiscalCheck: true,TypeCheck: "0", NotPrint: false,CashierName: "ХХХХХХ А.",CashierVATIN: "ХХХХХХХХ",TaxVariant: "2",ClientAddress: "",CheckStrings: [{ PrintText: { Text: ">#2#< СЧЕТ № 9", Font: "1", Intensity: "4",},},{Register: {Name: "ХХХХХ ХХ",Quantity: "1.000", Price: "580.00",Amount: "580.00", Department: "0",Tax: "-1", SignMethodCalculation: "4",SignCalculationObject: "1", MeasurementUnit: "",}},{Register: {Name: "Сок Вишня",Quantity: "1.000", Price: "130.00",Amount: "130.00", Department: "0",Tax: "-1", SignMethodCalculation: "4",SignCalculationObject: "1", MeasurementUnit: "",}},{Register: {Name: "Бон-аква б/г 0,5 л",Quantity: "1.000", Price: "80.00",Amount: "80.00", Department: "0",Tax: "-1", SignMethodCalculation: "4",SignCalculationObject: "1", MeasurementUnit: "",}}, ], ReceiptNumber: "9", IsFiscalCheck: "True", NotPrint: "False", NumberCopies: "0", PrintSlipAfterCheck: "True", PrintSlipForCashier: "False", PayByProcessing: "True", Cash: "0.00", ElectronicPayment: "790.00", AdvancePayment: "0.00", Credit: "0.00", CashProvision: "0"}

> 00:00.000034: Socket открыт.
< 00:00.000585: 05
> 00:00.000622: 15
< 00:00.000159: 02-05-11-1E-00-00-00-0A
> 00:00.000736: 06-02-30-11-00-1E-43-31-1C-B3-14-0C-11-01-41-0A-B2-04-02-01-02-4E-41-00-00-01-01-10-16-0A-12-0F-25-06-00-DF-1A-02-00-33-00-00-00-00-00-B4-B5-86-65-75-00-48
< 00:00.003134: 06
> 00:00.000747: FF
< 00:00.000242: 05
> 00:00.000771: 15
< 00:00.000242: 02-05-10-1E-00-00-00-0B
> 00:00.000787: 06-02-10-10-00-1E-B2-04-02-01-00-9E-D8-20-01-00-A2-02-00-6C
< 00:00.001073: 06
> 00:00.000754: FF
> 00:00.000022: Socket закрыт.
Время выполнения команды:00:25.029928

Следующий лог
Текст команды:
IdType: KkmStrihM, IdModel: 22, ver: 2.1.22.25
Текст ошибки:
Отсуствует бумага
Низкоуровневые команды:

> 00:00.000041: Socket открыт.
< 00:00.000553: 05
> 00:00.000642: 15
< 00:00.000182: 02-05-11-1E-00-00-00-0A
> 00:00.000825: 06-02-30-11-00-1E-43-31-1C-B3-14-0C-11-01-41-0A-B2-04-02-01-02-4E-41-00-00-01-01-10-16-0A-12-0F-24-1B-00-DF-1A-02-00-33-00-00-00-00-00-B4-B5-86-65-75-00-54
< 00:00.002260: 06
> 00:00.000697: FF
< 00:00.000147: 05
> 00:00.000767: 15
< 00:00.000109: 02-05-10-1E-00-00-00-0B
> 00:00.000686: 06-02-10-10-00-1E-B2-04-02-01-00-9F-D8-20-01-00-A2-02-00-6D
< 00:00.001065: 06
> 00:00.000636: FF
> 00:00.000003: Socket закрыт.
Время выполнения команды:00:00.000000

Также в логах есть довольно часто "неизвестная ошибка" эквайринга, но она на работу не влияет.

HELP!!!

Добавлено: 29 окт 2018, 17:59
Andy
Снова повторилось то же самое -
Оплата снялась, фиск чек не напечатался, кассир попыталась принять оплату во второй раз, фиск чек снова не напечатался, оплата снова снялась, чек не вышел. Бумага в ККМ была. Следующий фиск чек (другой клиент) вышел.

Что посоветуете? посылать всегда в любом случае сбоя при оплате безналом команду отмены последней платежной транзакции?
Не удалится ли случайно тогда оплата предыдущего чека, если, к примеру, транзакция отклонена банком из-за недостатка средств или прекращена клиентом?
Сторнировать только если есть в ответе код авторизации?

вот логи и контрольная лента терминала

№ Дата Тип Модель Заводской № ИНН Команда
194 29.10.2018 14:02:22 GateSbRf СБРФ: Эквайринговые терминалы PayByPaymentCard
Текст команды:
IdType: GateSbRf, IdModel: 0, ver: 2.1.22.25
Текст ошибки:
Низкоуровневые команды:

Время выполнения команды:00:15.280441
Время выполнения команды:00:08.202691


195 29.10.2018 14:02:22 KkmStrihM РИТЕЙЛ-01Ф 0027070012137951 XXXXXXXXXXX RegisterCheck
Текст команды:
IdType: KkmStrihM, IdModel: 22, ver: 2.1.22.25
{Command: "RegisterCheck",NumDevice: "4", IdCommand: "B437FCA6-EA29-4D4E-8CAA-B555ED541772",IsFiscalCheck: true,TypeCheck: "0", NotPrint: false,CashierName: "XXXXXXXА.",CashierVATIN: "XXXXXXXXXXX",TaxVariant: "2",ClientAddress: "",CheckStrings: [{ PrintText: { Text: ">#2#< СЧЕТ № 6", Font: "1", Intensity: "4",},},{Register: {Name: "Сержио 30",Quantity: "1.000", Price: "580.00",Amount: "580.00", Department: "0",Tax: "-1", SignMethodCalculation: "4",SignCalculationObject: "1", MeasurementUnit: "",}},{Register: {Name: "Капучино",Quantity: "2.000", Price: "120.00",Amount: "240.00", Department: "0",Tax: "-1", SignMethodCalculation: "4",SignCalculationObject: "1", MeasurementUnit: "",}}, ], ReceiptNumber: "6", IsFiscalCheck: "True", NotPrint: "False", NumberCopies: "0", PrintSlipAfterCheck: "True", PrintSlipForCashier: "False", PayByProcessing: "True", Cash: "0.00", ElectronicPayment: "820.00", AdvancePayment: "0.00", Credit: "0.00", CashProvision: "0"}
Текст ошибки:
Отсуствует бумага
Низкоуровневые команды:

> 00:00.000041: Socket открыт.
< 00:00.000909: 05
> 00:00.000653: 15
< 00:00.000493: 02-05-11-1E-00-00-00-0A
> 00:00.000674: 06-02-30-11-00-1E-43-31-1C-B3-14-0C-11-01-88-0B-B2-04-02-01-02-4E-41-00-00-01-01-10-1D-0A-12-0E-0C-3B-00-DF-1A-02-00-3A-00-00-00-00-00-B4-B5-86-65-75-00-97
< 00:00.004144: 06
> 00:00.000727: FF
< 00:00.000262: 05
> 00:00.000779: 15
< 00:00.000147: 02-05-10-1E-00-00-00-0B
> 00:00.000796: 06-02-10-10-00-1E-B2-04-02-01-00-9E-D8-20-01-00-A4-02-00-6A
< 00:00.001202: 06
> 00:00.000683: FF
> 00:00.000265: Socket закрыт.
Время выполнения команды:00:08.343308


команда 196 аналог 199

№ Дата Тип Модель Заводской № ИНН Команда
197 29.10.2018 14:02:45 GateSbRf СБРФ: Эквайринговые терминалы PayByPaymentCard
Текст команды:
IdType: GateSbRf, IdModel: 0, ver: 2.1.22.25
Текст ошибки:
Низкоуровневые команды:

Время выполнения команды:00:15.280441
Время выполнения команды:00:08.202691
Время выполнения команды:00:09.093268


№ Дата Тип Модель Заводской № ИНН Команда
198 29.10.2018 14:02:45 KkmStrihM РИТЕЙЛ-01Ф 0027070012137951 XXXXXXXXXXX RegisterCheck
Текст команды:
IdType: KkmStrihM, IdModel: 22, ver: 2.1.22.25
{Command: "RegisterCheck",NumDevice: "4", IdCommand: "4EA9D497-FFDE-495D-BF96-FFD3698504DE",IsFiscalCheck: true,TypeCheck: "0", NotPrint: false,CashierName: "XXXXXXXА.",CashierVATIN: "XXXXXXXXXXX",TaxVariant: "2",ClientAddress: "",CheckStrings: [{ PrintText: { Text: ">#2#< СЧЕТ № 6", Font: "1", Intensity: "4",},},{Register: {Name: "Сержио 30",Quantity: "1.000", Price: "580.00",Amount: "580.00", Department: "0",Tax: "-1", SignMethodCalculation: "4",SignCalculationObject: "1", MeasurementUnit: "",}},{Register: {Name: "Капучино",Quantity: "2.000", Price: "120.00",Amount: "240.00", Department: "0",Tax: "-1", SignMethodCalculation: "4",SignCalculationObject: "1", MeasurementUnit: "",}}, ], ReceiptNumber: "6", IsFiscalCheck: "True", NotPrint: "False", NumberCopies: "0", PrintSlipAfterCheck: "True", PrintSlipForCashier: "False", PayByProcessing: "True", Cash: "0.00", ElectronicPayment: "820.00", AdvancePayment: "0.00", Credit: "0.00", CashProvision: "0"}
Текст ошибки:
Отсуствует бумага
Низкоуровневые команды:

> 00:00.000037: Socket открыт.
< 00:00.000464: 05
> 00:00.000694: 15
< 00:00.000239: 02-05-11-1E-00-00-00-0A
> 00:00.000844: 06-02-30-11-00-1E-43-31-1C-B3-14-0C-11-01-88-0B-B2-04-02-01-02-4E-41-00-00-01-01-10-1D-0A-12-0E-0D-16-00-DF-1A-02-00-3A-00-00-00-00-00-B4-B5-86-65-75-00-BB
< 00:00.002492: 06
> 00:00.000763: FF
< 00:00.000163: 05
> 00:00.000765: 15
< 00:00.000113: 02-05-10-1E-00-00-00-0B
> 00:00.000775: 06-02-10-10-00-1E-B2-04-02-01-00-9E-D8-20-01-00-A4-02-00-6A
< 00:00.001142: 06
> 00:00.000769: FF
> 00:00.000004: Socket закрыт.
Время выполнения команды:00:09.218260



№ Дата Тип Модель Заводской № ИНН Команда
199 29.10.2018 14:02:45 KkmStrihM РИТЕЙЛ-01Ф 0027070012137951 XXXXXXXXXXX RegisterCheck
Текст команды:
IdType: KkmStrihM, IdModel: 22, ver: 2.1.22.25
Текст ошибки:
Отсуствует бумага
Низкоуровневые команды:

> 00:00.000040: Socket открыт.
< 00:00.000358: 05
> 00:00.000689: 15
< 00:00.000207: 02-05-11-1E-00-00-00-0A
> 00:00.000740: 06-02-30-11-00-1E-43-31-1C-B3-14-0C-11-01-88-0B-B2-04-02-01-02-4E-41-00-00-01-01-10-1D-0A-12-0E-0D-16-00-DF-1A-02-00-3A-00-00-00-00-00-B4-B5-86-65-75-00-BB
< 00:00.002479: 06
> 00:00.000711: FF
< 00:00.000215: 05
> 00:00.000762: 15
< 00:00.000207: 02-05-10-1E-00-00-00-0B
> 00:00.000778: 06-02-10-10-00-1E-B2-04-02-01-00-9F-D9-20-01-00-A5-02-00-6B
< 00:00.001291: 06
> 00:00.000706: FF
> 00:00.000005: Socket закрыт.
Время выполнения команды:00:00.000000

контрольная лента терминала:

XXXXXXXXXXX

29.10.18 14:16
Контрольная лента
Терминал: ХХХХХХХХ
Мерчант: ХХХХХХХХХХХХ
------------------------------------

Валюта : Руб

Оплата

29.10.18 13:09 0001
Kарта: 410730******5713 (C)
Тип карты: Visa Credit
Код авторизации: 4327ХХ
Сумма: 1137.00

29.10.18 14:02 0002
Kарта: 480111******6659(E4)
Тип карты: Visa
Код авторизации: 2243ХХ
Сумма: 820.00

29.10.18 14:02 0003
Kарта: 480111******6659(E4)
Тип карты: Visa
Код авторизации: 2716ХХ
Сумма: 820.00

Всего операций: 3
на сумму: 2777.00
Скидка: 0.00
------------------------------------
********* Отчет закончен *********
************************************
База знаний кассира
Оплата-картой.рф
************************************
====================================







Уточнение к логам которые выше

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

Может ещё какие логи включить ?

Re: Окончание бумаги в процессе эквайринга

Добавлено: 30 окт 2018, 12:30
Audim
1. Сама ошибка принесенная из предыдущей команды.
В предыдущей команде не получилось что-то напечатать, а в текущей идет ошибка.
Нужно нажать кнопку на ККТ - должен быть напечатан чек.

2. Как я понял после ошибки в регистрации чека не идет отмена транзакции по эквайрингу?
- Надо проверить что терминалу эквайринга разрешены команды отмены оплаты "АварийнаяОтменаТранзакции"
- Чтобы это проверить нужны логи не только по регистрции чека но и по эквайрингу.
По умолчанию если команда прошла успешно она не пишется в лог.
Включите в настройках "Логирование Всех команд"
И в следующий раз когда возникнет такое надо снять не только лог регистрации чека но и логи команд эквайринга которые запишутся перед логом команды регистрации чека.

Re: Окончание бумаги в процессе эквайринга

Добавлено: 20 фев 2021, 00:52
Tr1gger
Решил поднять старую тему.

Смоделировал ситуацию:
в кассе осталось мало чековой ленты
делаю команду RegisterCheck

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

IdType: KkmAtol_5, IdModel: 67, ver: 2.1.40.48, Width: 32, Firmware: 3.0.8346, IP client: [::1]:51016
{"Command":"RegisterCheck","NumDevice":0,"InnKkm":"","KktNumber":"","Timeout":30,"IdCommand":"35f31e52-ec1c-5abf-90bf-43fc1915e15b","IsFiscalCheck":true,"TypeCheck":0,"NotPrint":false,"NumberCopies":0,"CashierName":"ИП Иванов Иван Иванович","CashierVATIN":"770503966443","ClientAddress":"","ClientInfo":"","ClientINN":"","SenderEmail":"","TaxVariant":"","CheckStrings":[{"PrintImage":null},{"PrintText":{"Text":">#1#<Антикафе ","Font":1}},{"PrintText":{"Text":"<<*>>"}},{"Register":{"Name":"Доп. услуги","Quantity":1,"Price":1,"Amount":1,"Department":0,"Tax":-1,"SignMethodCalculation":4,"SignCalculationObject":4,"MeasurementUnit":"шт","AgentSign":null,"AgentData":null,"PurveyorData":null}}],"Cash":0,"ElectronicPayment":1,"AdvancePayment":0,"Credit":0,"CashProvision":0,"AgentSign":null,"AgentData":null,"PurveyorData":null}
происходит оплата картой
деньги списываются с карты и в момент печати лента заканчивается.


Выдается ошибка:
Не удалось зарегистрировать фискальную строку ( 44 : Нет бумаги )

При этом отмена операции по карте не происходит.

В логах также есть ошибка по INPAS:
Не поддерживается команда EmergencyReversal

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

Текст команды:
IdType: GateINPAS, IdModel: 0, ver: 2.1.40.48, Width: 0, Firmware: <Не определено>, IP client:
{"Command":"EmergencyReversal","NumDevice":2,"IdCommand":"c5904139-739e-4fc1-8787-054712170d44","Timeout":0,"NotPrint":true,"CheckStrings":[],"Amount":1.0,"CheckProps":[],"RRNCode":"105015084484","AuthorizationCode":"256662"}
Текст ошибки:
Драйвер не поддерживает эту команду
Низкоуровневые команды:

Время выполнения команды:00:00.000000
Текст ответа:
{"CardNumber":"","ReceiptNumber":"","RRNCode":"","AuthorizationCode":"256662","Slip":"","PrintSlipOnTerminal":false,"Amount":1.0,"Command":"EmergencyReversal","Error":"Драйвер не поддерживает эту команду","Warning":"","Message":"","Status":0,"IdCommand":"c5904139-739e-4fc1-8787-054712170d44","NumDevice":2}

И вопросы:
Что мне нужно сделать в такой ситуации? Это же не нормально, что не произошла отмена операции? Нужно обращаться в банк и конфигурировать терминал?
Или есть возможность напечатать фискальный чек?

Re: Окончание бумаги в процессе эквайринга

Добавлено: 20 фев 2021, 01:26
saratovout
Tr1gger писал(а):
20 фев 2021, 00:52
Не удалось зарегистрировать фискальную строку ( 44 : Нет бумаги )
<..>
Что мне нужно сделать в такой ситуации?
Легкое решение вашей задачи состоит в физическом заклеивании датчика бумаги в ККТ, напр. изолентой или малярным скотчем.

По моей практике, ситуаций с лентой может быть настолько много, что проще это решить так.

Re: Окончание бумаги в процессе эквайринга

Добавлено: 24 фев 2021, 13:52
Audim
Самое правильное решение - разделение операций оплаты и пробития чеков.