Передача RRNCode при возврате и отмене на INPAS и ARCUS-2

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
Mike
Сообщения: 2
Зарегистрирован: 03 май 2021, 19:01

Передача RRNCode при возврате и отмене на INPAS и ARCUS-2

Сообщение Mike » 04 май 2021, 20:43

Добрый день.

Имеется два терминала - один INPAS из Точки, другой ARCUS-2 из УБРиР. Работают через расширение в Chrome.

На ARCUS-2 при отмене через KkmServer.CancelPaymentByPaymentCard() терминал запрашивается номер чека, при этом если передан любой из параметров RRNCode или AuthorizationCode, то терминал всегда возвращает ошибку "Транзакция не найдена!" и отмена не происходит. Без передачи этих кодов все работает, запрашивается номер чека и отмена проходит. На INPAS из Точки эти параметры никак не влияют на отмену - что с ними, что без них отмена всегда проходит, при этом больше ничего не запрашивается.

Несколько вопросов по этому поводу:
1. Насколько корректно НЕ передавать RRNCode и AuthorizationCode при отмене? Без них сейчас все работает в обоих случаях, но как я понимаю может не работать с другими банками/протоколами.
2. Можно ли программно передавать номер чека для ARCUS-2, чтобы кассиру не приходилось его вводить? К тому же номер чека я нашел только на слипе, в ответе он не возвращается.

На INPAS при возврате через KkmServer.ReturnPaymentByPaymentCard() на терминале запрашивается RRNCode, но если добавить RRNCode в данные, возвращаемые ReturnPaymentByPaymentCard(), то ничего не запрашивается, возврат проходит. Так как в документации я про это ничего не нашел, то вопрос:
3. Это нормальное, стабильное поведение? Не изменится ли что-то в следующих версиях и будет ли работать с другими банками?

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

Re: Передача RRNCode при возврате и отмене на INPAS и ARCUS-2

Сообщение saratovout » 04 май 2021, 21:16

По моей практике, лучше делать возврат (Return/Refund) платежа, а не отмену. Такие операции в 99% проходят.

Если терминал поддерживает и продажа состоялась на нем до "закрытия" банковской смены (последнего сброса реестра), то он автоматом проведет отмену (разхолдирование), а не возврат. Т.е. клиент мгновенно получает возмещение. Это работает если клиент прикладывает/прокатывает туже карту (и тем же способом), которой платил и именно по ней происходит сопоставление в пин-паде.

Если происходит возврат, а RRN пустой/неверный, или карта плательщика другая, то банк может задержать возвратный платеж на несколько дней. Как правило, клиент не увидит разницы в возврате за 2 дня или за 3 дня. Сроки обработки устанавливаются банком.

По большому счету, снятие холда и возврат для вас может отличаться только комиссией, которую возьмет банк за обработку. За снятие холда, банк не возьмет ничего. За возврат платежа (опять-таки, если возвратный платеж отработал именно как Refund) - по тарифам на возврат.
good films make your life better..

Mike
Сообщения: 2
Зарегистрирован: 03 май 2021, 19:01

Re: Передача RRNCode при возврате и отмене на INPAS и ARCUS-2

Сообщение Mike » 05 май 2021, 04:08

По моей практике, лучше делать возврат (Return/Refund) платежа, а не отмену. Такие операции в 99% проходят.
Так у меня все операции проходят, кроме отмены на ARCUS-2 с передачей кодов RRN или авторизации, без них и тут работает. Только получается, что на каждом терминале все это работает немного по-разному. Ну и мне кажется, что где-то есть нестыковка работы kkmserver и ARCUS-2, раз с передачей этих кодов отмена не работает, хотя это описано в документации. Может нужно подправить ops.ini или что-то еще сделать, а может у банка такое ПО и с этим ничего не поделать. Со страницы "Тест оборудования" отмена тоже не проходит с той же ошибкой "Транзакция не найдена!". Просто хотелось бы решение, которое работало бы в соответствии с документацией, а не подбором параметров.
Если терминал поддерживает и продажа состоялась на нем до "закрытия" банковской смены (последнего сброса реестра), то он автоматом проведет отмену (разхолдирование), а не возврат.
У меня на обоих терминалах в таком случае происходит именно возврат, через несколько дней, даже если смена еще не была закрыта.
Если происходит возврат, а RRN пустой/неверный, или карта плательщика другая, то банк может задержать возвратный платеж на несколько дней.
Но на странице с примерами https://kkmserver.ru/KkmServer#PrimerAddIn в примере возврата вообще нет параметра RRN:

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

// Вернуть платеж по платежной карте ---------------------------------------------------------------------
//Параметры:
// NumDevice: номер устройства, 0 - любое настроенное, активное
// Amount: сумма оплаты
// ReceiptNumber: Номер чека

IdCommand = KkmServer.ReturnPaymentByPaymentCard(Device, 0.01, 'TEST-01').Execute(ExecuteSuccess).IdCommand;
Я его добавляю в объект, который возвращается из KkmServer.ReturnPaymentByPaymentCard(), чтобы на терминале INPAS не приходилось его вводить вручную, это работает, но нигде не документировано и не факт, что будет работать в другой версии kkmserver или с другими терминалами.

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

Re: Передача RRNCode при возврате и отмене на INPAS и ARCUS-2

Сообщение saratovout » 05 май 2021, 07:08

Mike писал(а):
05 май 2021, 04:08
Но на странице с примерами в примере возврата вообще нет параметра RRN:
Наиболее актуальные примеры нужно искать в папке c установленной программой:
\Samples*.html и файлах \*test.js
Так сложилось, что справка на сайте не всегда в полной мере и достаточно точно отражает поддерживаемые команды.

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

ReturnPaymentByPaymentCard(NumDevice = 0, Amount, ReceiptNumber, RRNCode, AuthorizationCode)

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

{
	Command: "ReturnPaymentByPaymentCard",
	NumDevice: NumDevice,
	CardNumber: Old_Card,
	Amount: 1.23,
	ReceiptNumber: "TEST-01",
	RRNCode: Old_RRN,
	AuthorizationCode: Old_Auth,
	IdCommand: Guid
}
Mike писал(а):
05 май 2021, 04:08
мне кажется, что где-то есть нестыковка работы kkmserver
По вопросу возможной нестыковки, давайте дождемся ответа разработчика ПО..
good films make your life better..

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

Re: Передача RRNCode при возврате и отмене на INPAS и ARCUS-2

Сообщение Audim » 06 май 2021, 16:32

1. Насколько корректно НЕ передавать RRNCode и AuthorizationCode при отмене? Без них сейчас все работает в обоих случаях, но как я понимаю может не работать с другими банками/протоколами.

Можно не передавать RRNCode/AuthorizationCode
Но если передать на некоторых моделях терминалов транзакция пройдет без карты - вот и все.

2. Можно ли программно передавать номер чека для ARCUS-2, чтобы кассиру не приходилось его вводить? К тому же номер чека я нашел только на слипе, в ответе он не возвращается.

Нет у них этого к сожелению.

3. Это нормальное, стабильное поведение? Не изменится ли что-то в следующих версиях и будет ли работать с другими банками?
Вернуться к началу

Изменить поведение может банк...

Ответить