Эквайринг: неизвестная ошибка, устранение
Проблема: на одной из рабочих касс при проведении оплаты на банковской карты появилась следующая ошибка:
«Ошибка отмены операции транзакции. Обратитесь в банк. Ошибка при выполнении функции АварийнаяОтменаОперации, ответ терминала — Ошибка 4321».
Оплата по карте не была произведена.
Я уже пару раз касался проблем в работе эквайринга. Это, в частности, были статьи, посвящённые 99 ошибке банковского терминала, а также ошибке 2000. В обоих случаях по факту проблема была с самим терминалом или же с проводами, с помощью которых терминал подключается к компьютерной технике.
В данном случае проблема виделась изначально похожей. До тех пор, пока не был просмотрен список ошибок ПО Сбербанк. И что выяснилось? Ошибки 4321 в том списке нет! В том смысле, что совсем.
Это вгоняло в ступор.
Благо, что из магазина отзвонились и сказали, что в банке платёж подтвердили. Платёж по карте прошёл. Всё отлично. То есть повторялась ошибка 2000. Как-то так.
Я чек вывел, всё пробилось, всё прошло. Торговля возобновилась. Но лишь до следующей ошибки. Той же — 4321. То есть, недокументированная ошибка по идее уже повторилась. Отчего имеет смысл как бы её документировать. Вот только найти неисправность.
Решение проблемы: Не буду утомлять слишком долгим рассказом о процессе решении проблемы. Было испробовано очень и очень много разнообразных вариантов. Домыслы не подтверждались, мысли уже путались.
Решение же таково:
Я уже писал о том, как настроить эквайринг в 1С для работы банковского терминала Сбербанка. Так вот: ошибка, как оказалось, крылась в этом. В один из моментов было обращено внимание (работа происходила в файловом менеджере с двумя окнами), что время создания файлов dll отличается в папке 1С и в папке, где хранятся все данные по настройкам терминала Сбербанка. Подробнее можно об этом прочитать, как я сказал чуть выше, в моей статье, посвящённой непосредственной настройке.
Почти наверняка получилось так, что драйвера терминала были обновлены автоматически. В результате перехода на новую версию. Либо же их загрузили сотрудники Сбербанка (например, для работы с картами «Мир» в последнее время было много обновлений). В результате чего драйвер, которым пользовалась сама 1С, устарел. И не поддерживал, к примеру, те же самые карты «Мир».
После того, как драйвера из директории 1С были дерегистрированы удалены, скопированы и зарегистрированы новые из папки Сбербанка, ошибка исчезла и больше не появлялась.
В качестве совета: После этого я проверил практически на всех вверенных мне объектах драйвера аналогичным образом. В некоторых магазинах действительно были драйвера и dll старее. Обновил. На всякий случай. Нерегламентированных ошибок больше пока нигде не появлялось.