Ошибка при возврате/отмене платежа по карте
Добрый день.
Обновился до Розница, редакция 2.3 (2.3.9.42) и появилась проблема при возврате/отмене покупки по карте из "режима менеджера" выходит ошибка : "При выполнении операции возникла ошибка:
"Ошибка при выполнении функции ОтменитьПлатежПоПлатежнойКарте, ответ терминала - Ошибка 4108".
Оплата по карте не была произведена."
До обновления все возвращалось без проблем.
При этом возврат/отмена из режима РМК работает нормаль.
Может кто сталкивался с подобных и решал проблему. РМК не пользуемся, а теперь ради возврата приходится туда постоянно заходить)
Обновился до Розница, редакция 2.3 (2.3.9.42) и появилась проблема при возврате/отмене покупки по карте из "режима менеджера" выходит ошибка : "При выполнении операции возникла ошибка:
"Ошибка при выполнении функции ОтменитьПлатежПоПлатежнойКарте, ответ терминала - Ошибка 4108".
Оплата по карте не была произведена."
До обновления все возвращалось без проблем.
При этом возврат/отмена из режима РМК работает нормаль.
Может кто сталкивался с подобных и решал проблему. РМК не пользуемся, а теперь ради возврата приходится туда постоянно заходить)
Прикрепленные файлы:

По теме из базы знаний
- 1С:Административно-хозяйственная деятельность банка
- Сервис SberPay QR (Плати QR) от Сбербанка для Розница 2.3, УТ 11.5, ERP/КА 2.5 , УНФ 3.0, Розница 3.0, Бухгалтерия 3.0
- Сопоставление данных ОФД, отчетов о розничных продажах, реестров оплат картами из банков. УТ 10.3
- Терминал системы быстрых платежей платформа QRManager: оплата по QR для 1С:УТ11, КА 2.х и ERP 2.х,Розница отраслевые
- 1С:Учет и управление хозяйственной деятельностью банка
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ошибка возникает при возврате платежа, когда покупатель для возврата использует другую карту. Не ту, по которой совершался платеж. Повторите операцию с помощью карты, с которой производилась операция. Номер карты, которая использовалась для покупки указан в чеке (четыре последние цифры). Если клиент использует смартфон и не может выбрать в нём правильную карту, то лучше будет использовать непосредственно саму карту. Если не помогло - обратитесь в службу поддержки
(6) или я вас не пойму, или вы меня) вы предлагаете до всех манипуляций в 1С с начало вставлять/прикладывать карту к терминалу? ошибка появляется при нажатии на кнопку "оплатить/отменить оплату через терминал", т.е. ничего на терминал не передается, никаких окошек в 1с не всплывает с просьбой вставить/приложить карту, просто выскакивает ошибка? причем тут карта?
(10) все работало отлично, но после обновления 1С появилась ошибка. При этом через сберовскую утилиту возврат идет без проблем, через РМК возврат тоже проходит, логично предположить что проблема не в терминале и софте, а что-то намудрили в 1С, ведь все работало до обновления)
Сам столкнулся на днях с этой ошибкой, опытным путем выяснил что проблема идет из-за параметра "НомерКарты" - он запоминает карту клиента и из-за этого выдает ошибку! Сделал простенькое расширение:
Надеюсь кому-то пригодиться! (Розница 2.3.10.43)
Надеюсь кому-то пригодиться! (Розница 2.3.10.43)
Процедура ВыполнитьЭквайринговуюОперацию(ОбъектДрайвера, ПараметрыПодключения, ДанныеОперации, РезультатВыполнения, Команда)
Если НЕ (ДанныеОперации.СуммаОперации > 0) Тогда
ОписаниеОшибки = НСтр("ru='Не корректная сумма операции.'");
РезультатВыполнения.ОписаниеОшибки = ОписаниеОшибки;
РезультатВыполнения.Результат = Ложь;
Возврат;
КонецЕсли;
НомерМерчанта = ?(ДанныеОперации.НомерМерчанта <> Неопределено, ДанныеОперации.НомерМерчанта, 0);
// Передадим пустое значение для Карты
НомерКарты = "";
НомерЧека = ?(ДанныеОперации.НомерЧека <> Неопределено, ДанныеОперации.НомерЧека, "");
СсылочныйНомер = ?(ДанныеОперации.СсылочныйНомер <> Неопределено, ДанныеОперации.СсылочныйНомер, "");
КодАвторизации = ?(ДанныеОперации.КодАвторизации <> Неопределено, ДанныеОперации.КодАвторизации, "");
СуммаОперации = ?(ДанныеОперации.СуммаОперации <> Неопределено, ДанныеОперации.СуммаОперации, 0);
ТекстСлипЧека = "";
Показать
(18) Абсолютно согласен с вами. Проблема в том что с некоторых пор сам терминал перестал понимать переданный номер карты в маскированном виде (например, "***********0487"). Вероятно это произошло с обновлением его драйвера. При возврате в номер карты необходимо передать либо полный номер, что не представляется возможным, либо пустоту.
ПараметрыОперации.ТипТранзакции = "AuthorizeRefund";
ДанныеЭТДокументаОснования = ДанныеЭТДокументаОснованияСервер();
// при передаче в процедуру маскированного номера карты терминал возвращает ошибку
//ПараметрыОперации.НомерКарты = ДанныеЭТДокументаОснования.НомерПлатежнойКартыЭТ;
ПараметрыОперации.СсылочныйНомер = ДанныеЭТДокументаОснования.СсылочныйНомерЭТ;
ПараметрыОперации.НомерЧекаЭТ = ДанныеЭТДокументаОснования.НомерЧекаЭТ;
Показать
Добрый день. Сам столкнулся с такой же проблемой. Сегодня буду второй день разбирать ситуацию. Только прошу в части эквайринга сбера, как выше, со мной не спорить.
Суть. Клиент долго не обращался что перестал работать возврат из 1С бухгалтерии после обновления. 1С актуальная (3.0), ФР - Штрих М.
В эквайринге Сбера две операции отмена и возврат. Вчера опытным путем установил что терминал самостоятельно распознает тип операции (именно поэтому сегодня буду тестить возвраты).
При отмене выдает ошибку 4108, ФР скромно молчит, не попискивает. Терминал не оживает, запроса карты нет!
В логах Сберовского упос:
13.07 09:33:50 SBKRNL: Command = 4002, Amount = 2.00, RRN = 219484589478, Department = 1, additional data = QSE...ECT
13.07 09:33:50 SBKRNL: MSBuild. Version:32.04.04
13.07 09:33:50 SBKRNL: Port timeouts:4294967295-0-0
13.07 09:33:50 SBKRNL: Open com 9 (115200)
13.07 09:33:50 SBKRNL: Pinpad status timeout 0 s
13.07 09:33:50 SBKRNL: WaitPinpadSeconds=0
13.07 09:33:50 SBKRNL: WaitPinpadSeconds=0
13.07 09:33:50 SBKRNL: Start tmo 140200
13.07 09:33:50 SBKRNL: Close com 9
13.07 09:33:50 SBKRNL: Result = 4108
Делаю точку останова в отладчике. Запускаю повторно на том же самом чеке (в ПО значения передаваемые в драйвер те же) и случается чудо, остановка, фискальник трижды пикнул и ожил терминал.
Прикладываю карту, жму продолжить отладку, фр выдает чеки.
В логах команда отобразилась по другому (RRN нужен при возврате), ну соответственно и результат:
13.07 09:31:28 SBKRNL: Command = 4002, Amount = 2.00, Department = 1, additional data = QSE...ECT
13.07 09:31:28 SBKRNL: MSBuild. Version:32.04.04
13.07 09:31:28 SBKRNL: Port timeouts:4294967295-0-0
13.07 09:31:28 SBKRNL: Open com 9 (115200)
13.07 09:31:28 SBKRNL: Pinpad status timeout 0 s
13.07 09:31:28 SBKRNL: WaitPinpadSeconds=0
13.07 09:31:28 SBKRNL: WaitPinpadSeconds=0
13.07 09:31:28 SBKRNL: Start tmo 140200
13.07 09:31:56 SBKRNL: Connecting to port 670
13.07 09:31:56 SBKRNL: Connect OK
13.07 09:31:57 SBKRNL: Close socket 3304
13.07 09:31:58 SBKRNL: Close com 9
13.07 09:31:58 SBKRNL: Result = 0, Amount = 2.00, Card = '' and '************5185'
Т.к. я не спец по ФР, прошу совета как решить проблему (по ходу драйвер эквайринга обращается в ФР за поиском операции, а не в терминал).
Логику сберовских библиотек в 1С я не нашел, есть обращение к ФР, нет обращения, не знаю.
Можно тупо воткнуть тайм-аут перед точкой останова, что сегодня и попробую. Но, если попадется вдруг базовая версия, то не прокатит вариант.
Создается ощущение что проблема в ФР
P.S. Не тыкайте что время в логах разное, просто лог взял куском. С успешной операцией и с ошибкой
Суть. Клиент долго не обращался что перестал работать возврат из 1С бухгалтерии после обновления. 1С актуальная (3.0), ФР - Штрих М.
В эквайринге Сбера две операции отмена и возврат. Вчера опытным путем установил что терминал самостоятельно распознает тип операции (именно поэтому сегодня буду тестить возвраты).
При отмене выдает ошибку 4108, ФР скромно молчит, не попискивает. Терминал не оживает, запроса карты нет!
В логах Сберовского упос:
13.07 09:33:50 SBKRNL: Command = 4002, Amount = 2.00, RRN = 219484589478, Department = 1, additional data = QSE...ECT
13.07 09:33:50 SBKRNL: MSBuild. Version:32.04.04
13.07 09:33:50 SBKRNL: Port timeouts:4294967295-0-0
13.07 09:33:50 SBKRNL: Open com 9 (115200)
13.07 09:33:50 SBKRNL: Pinpad status timeout 0 s
13.07 09:33:50 SBKRNL: WaitPinpadSeconds=0
13.07 09:33:50 SBKRNL: WaitPinpadSeconds=0
13.07 09:33:50 SBKRNL: Start tmo 140200
13.07 09:33:50 SBKRNL: Close com 9
13.07 09:33:50 SBKRNL: Result = 4108
Делаю точку останова в отладчике. Запускаю повторно на том же самом чеке (в ПО значения передаваемые в драйвер те же) и случается чудо, остановка, фискальник трижды пикнул и ожил терминал.
Прикладываю карту, жму продолжить отладку, фр выдает чеки.
В логах команда отобразилась по другому (RRN нужен при возврате), ну соответственно и результат:
13.07 09:31:28 SBKRNL: Command = 4002, Amount = 2.00, Department = 1, additional data = QSE...ECT
13.07 09:31:28 SBKRNL: MSBuild. Version:32.04.04
13.07 09:31:28 SBKRNL: Port timeouts:4294967295-0-0
13.07 09:31:28 SBKRNL: Open com 9 (115200)
13.07 09:31:28 SBKRNL: Pinpad status timeout 0 s
13.07 09:31:28 SBKRNL: WaitPinpadSeconds=0
13.07 09:31:28 SBKRNL: WaitPinpadSeconds=0
13.07 09:31:28 SBKRNL: Start tmo 140200
13.07 09:31:56 SBKRNL: Connecting to port 670
13.07 09:31:56 SBKRNL: Connect OK
13.07 09:31:57 SBKRNL: Close socket 3304
13.07 09:31:58 SBKRNL: Close com 9
13.07 09:31:58 SBKRNL: Result = 0, Amount = 2.00, Card = '' and '************5185'
Т.к. я не спец по ФР, прошу совета как решить проблему (по ходу драйвер эквайринга обращается в ФР за поиском операции, а не в терминал).
Логику сберовских библиотек в 1С я не нашел, есть обращение к ФР, нет обращения, не знаю.
Можно тупо воткнуть тайм-аут перед точкой останова, что сегодня и попробую. Но, если попадется вдруг базовая версия, то не прокатит вариант.
Создается ощущение что проблема в ФР
P.S. Не тыкайте что время в логах разное, просто лог взял куском. С успешной операцией и с ошибкой
(21)Здравсвуйте, смогли разобраться? У меня вообще странная фигня, некоторые карты нормально проходят.
В обоих случаях номер карты сохранен со звездочками, но в первом сразу ошибка, во втором терминал дает возрват (ошибка 2000 - это я отмену жму). Все в рамках одной смены и одного дня. Если затереть номер карты в чеке, то возврат дается не знаю правда вероятно это не отмена операции а именно возрват
Кстати это последняя УТ 11.5.9
25.10 11:46:27 GATE: lock:'00000D30' 'UPOSWINMUTEX2'
25.10 11:46:27 SBKRNL: Command = 4002, Amount = 1940.00, RRN = 229851024278, Department = 1, additional data = QSE...ECT
25.10 11:46:27 SBKRNL: MSBuild. Version:32.04.04
25.10 11:46:27 SBKRNL: Port timeouts:4294967295-0-0
25.10 11:46:27 SBKRNL: Open com 7 (115200)
25.10 11:46:27 SBKRNL: Pinpad status timeout 0 s
25.10 11:46:27 SBKRNL: WaitPinpadSeconds=0
25.10 11:46:27 SBKRNL: WaitPinpadSeconds=0
25.10 11:46:27 SBKRNL: Start tmo 140200
25.10 11:46:27 SBKRNL: Close com 7
25.10 11:46:27 SBKRNL: Result = 4108
25.10 11:46:27 GATE: unlock:'00000D30'
25.10 11:46:27 GATE: lock:'00000D30' 'UPOSWINMUTEX2'
25.10 11:46:27 GATE: unlock:'00000D30'
Показать25.10 11:47:01 GATE: lock:'00000EC0' 'UPOSWINMUTEX2'
25.10 11:47:01 SBKRNL: Command = 4002, Amount = 195.00, RRN = 842186748100, Department = 1, additional data = QSE...ECT
25.10 11:47:01 SBKRNL: MSBuild. Version:32.04.04
25.10 11:47:01 SBKRNL: Port timeouts:4294967295-0-0
25.10 11:47:01 SBKRNL: Open com 7 (115200)
25.10 11:47:01 SBKRNL: Pinpad status timeout 0 s
25.10 11:47:01 SBKRNL: WaitPinpadSeconds=0
25.10 11:47:01 SBKRNL: WaitPinpadSeconds=0
25.10 11:47:01 SBKRNL: Start tmo 140200
25.10 11:47:03 SBKRNL: Send abort command
25.10 11:47:03 SBKRNL: Close com 7
25.10 11:47:03 SBKRNL: Clear cheque on error 2000
ПоказатьВ обоих случаях номер карты сохранен со звездочками, но в первом сразу ошибка, во втором терминал дает возрват (ошибка 2000 - это я отмену жму). Все в рамках одной смены и одного дня. Если затереть номер карты в чеке, то возврат дается не знаю правда вероятно это не отмена операции а именно возрват
Кстати это последняя УТ 11.5.9
(22)
Еще пример - рубль не возвращает
Затираю карту в 1С, но оставляю ссылочный номер - даёт вернуть
Еще пример - рубль не возвращает
25.10 12:17:15 SBKRNL: Command = 4002, Amount = 1.00, RRN = 229851297602, Department = 1, additional data = QSE...ECT
25.10 12:17:15 SBKRNL: MSBuild. Version:32.04.04
25.10 12:17:15 SBKRNL: Port timeouts:4294967295-0-0
25.10 12:17:15 SBKRNL: Open com 7 (115200)
25.10 12:17:15 SBKRNL: Pinpad status timeout 0 s
25.10 12:17:15 SBKRNL: WaitPinpadSeconds=0
25.10 12:17:15 SBKRNL: WaitPinpadSeconds=0
25.10 12:17:16 SBKRNL: Start tmo 140200
25.10 12:17:16 SBKRNL: Close com 7
25.10 12:17:16 SBKRNL: Result = 4108
25.10 12:17:16 GATE: unlock:'00000EE4'
25.10 12:17:16 GATE: lock:'00000EE4' 'UPOSWINMUTEX2'
25.10 12:17:16 GATE: unlock:'00000EE4'
25.10 12:18:18 GATE: lock:'00000A84' 'UPOSWINMUTEX2'
ПоказатьЗатираю карту в 1С, но оставляю ссылочный номер - даёт вернуть
25.10 12:18:18 SBKRNL: Command = 4002, Amount = 1.00, RRN = 229851297602, Department = 1, additional data = QSE...ECT
25.10 12:18:18 SBKRNL: MSBuild. Version:32.04.04
25.10 12:18:18 SBKRNL: Port timeouts:4294967295-0-0
25.10 12:18:18 SBKRNL: Open com 7 (115200)
25.10 12:18:18 SBKRNL: Pinpad status timeout 0 s
25.10 12:18:18 SBKRNL: WaitPinpadSeconds=0
25.10 12:18:18 SBKRNL: WaitPinpadSeconds=0
25.10 12:18:18 SBKRNL: Start tmo 140200
25.10 12:18:31 SBKRNL: Connecting to port 670
25.10 12:18:31 SBKRNL: Connect OK
25.10 12:19:00 SBKRNL: Close socket 3280
25.10 12:19:04 SBKRNL: Connecting to port 670
25.10 12:19:04 SBKRNL: Connect OK
25.10 12:19:06 SBKRNL: Close socket 3276
25.10 12:19:08 SBKRNL: Close com 7
Показать
(24) мдаа, до сих пор не починили. И уже просто лень в саппорт писать - они три раза переспросят в чем проблема, пропросят отправить базу, а потом напишут, что это не является ошибкой.
Создайте новое расширение, найдите в общем модуле "ПодключаемоеОборудованиеДрайверСинхронноКлиент" процедуру ВыполнитьЭквайринговуюОперацию. На ней правой кнопкой мыши -> "Добавить в расширение" выполнит вместо.
Скопировать текст оригинальной процедуры и после строчки с номером карты добавить НомерКарты=""
Создайте новое расширение, найдите в общем модуле "ПодключаемоеОборудованиеДрайверСинхронноКлиент" процедуру ВыполнитьЭквайринговуюОперацию. На ней правой кнопкой мыши -> "Добавить в расширение" выполнит вместо.
Скопировать текст оригинальной процедуры и после строчки с номером карты добавить НомерКарты=""
НомерКарты = ?(ДанныеОперации.НомерКарты <> Неопределено, ДанныеОперации.НомерКарты, "");
НомерКарты="";
Прикрепленные файлы:

(26)Вот поставь расширение, должно все работать. Собрал по подсказке (28)akadelpher@gmail.com
Прикрепленные файлы:
АКМ_Испр_Эквайринг_Расш.cfe
(29) главное пару моментов -
1) это скорей всего норма только для сберовского терминала. Возможно они зальют прошивку? Или все таки 1С виноват.
2) Надо проверить чтоб это была именно отмена покупки, а то вдруг там возврат делается и собственно комиссия списывается за саму покупку.
1) это скорей всего норма только для сберовского терминала. Возможно они зальют прошивку? Или все таки 1С виноват.
2) Надо проверить чтоб это была именно отмена покупки, а то вдруг там возврат делается и собственно комиссия списывается за саму покупку.
(31)Сбербанк как всегда все валят на 1с, типо с их стороны все в порядке и пока обновление не ожидается. Что касается возврата тоже такая же бяка с ошибками. Так что думаю 1с поменяли у себя модули, а сбер пока не собирается на это реагировать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот