Тип транзакции 7011

Что такое транзакция – значение слова

Тип транзакции 7011

Обычным людям объяснить простыми словами что это такое – транзакция, можно так. Транзакция – это термин в переводе с латинского означает «соглашение».

В финансовой сфере транзакция определяется как выполнение ряда операций с использованием денежных средств на банковских счетах.

Проще говоря, под транзакцией подразумевают процедуру, когда покупатель (клиент) добровольно перечисляет со своего счёта денежные средства лицу, которое продало ему товар или оказало услугу.

Это такие процедуры, как:

  • внесение денежных средств на карточку или счет;
  • снятие или перевод денег с карты;
  • продажа, покупка ценных бумаг, акций с использованием банковской карты;
  • оплата с помощью карты товара либо услуги через интернет, терминалы.

Банковская транзакция бывает двух видов, которые определяются по условиям ведения операций, степени участия сторон:

  1. Онлайн транзакция. Связь между сторонами осуществляется в режиме реального времени напрямую или и с помощью посредников. Причём они могут быть в любой точке мира. К подобным сделкам относятся: оплата карточкой товаров в разных торговых точках, переводы, осуществляемые между картами, получение займа через интернет, снятие в банкоматах наличных денег.
  2. Оффлайн транзакция. Проводится, когда участники сделки не имеют связи друг с другом. Для проведения этих операций непосредственного участия сторон не требуется. Они могут проходить с задержкой времени. Это такие операции, как получение зарплаты, списание денежных средств по безналу, другие сделки.

Существует определённый алгоритм действий, заранее установленный для каждого вида транзакции. Его условия одинаковы применительно к любым участникам, ситуациям. Отменить сделку можно только по её завершению, изменения в процессе операции невозможны.

Как осуществляется транзакция

Механизм проведения данной операции типичен для всех случаев. Чтобы точнее понять, что это такое – транзакция по банковской карте, можно рассмотреть пример с оплатой товара банковской картой в супермаркете.

В операции участвуют не физическое лицо (покупатель) и супермаркет (продавец), а 2 финансовые организации. Одна из них называется банком-эмитентом, другая – банком-эквайром.

Первая выпускает и обслуживает карту, вторая занята обслуживанием терминала в магазине, где проходит сделка.

Транзакция предполагает 4 действия и осуществляется в следующей последовательности:
  1. Чтобы покупатель совершил покупку, банком-эквайром запрашивается разрешение банка-эмитента на денежный перевод. Этот запрос становится возможным в момент, когда банковская карточка оказывается в платёжном устройстве. Защитная лента на пластике, соприкасаясь с терминалом, отправляет зашифрованные данные, в которых содержится информация о владельце карты, её реквизитах и другие сведения.
  2. Запрос, который сформирован таким образам, отправляется в специальную организацию (процессинговый центр) для проверки. Такой центр может быть собственным у достаточно крупной финансовой организации с большой клиентской базой. Более мелкие организации обзаводятся для таких целей посредниками (заключают с ними договор), куда они будут направлять запрос для проверки данных клиента. Процессинговый центр обрабатывает его, создаёт «запрос на авторизацию» и отсылает банку-эмитенту.
  3. Далее полученный банком результат сверяется со сведениями, имеющиеся в его базе данных. По итогу сверки сделка наделяется уникальным кодом. Его получение свидетельствует, что банк-эквайр дал положительный ответ по запросу. Это код получает и процессинговый центр. В сделке будет отказано, если данные в силу различных причин не пройдут проверку.
  4. Завершает процедуру анализ данных в банке-эквайре, проведение транзакции. В результате этого с банковской карты списываются необходимые денежные средства, которые пересылаются на счёт магазина. Покупателю выдаётся чек, который подтверждает, что транзакция прошла успешно. Произошло списание с его карты требуемой суммы.

Все операции отражаются в базе данных финансовых организаций независимо от того, проведены они успешно или нет.

Функционирование банковской системы – работа достаточно сложная. Но, рассматривая показанный выше пример, человеку становится понятно, как с банковской карты списываются его денежные средства. Каждую секунду в мире проводится масса подобных операций.

Сегодня внедрение современных технологий позволяет владельцам банковских карточек совершать технически сложные сделки буквально за несколько секунд. При этом им гарантированы безопасность, конфиденциальность, полная сохранность его персональных данных. Поэтому всем держателям карт важно понимать суть транзакции, с которой он постоянно сталкивается в современном мире!

Источник: https://zaym-go.ru/sovety-ekspertov/1307-tranzakciya.html

Ошибки при работе с POS РФИ

Тип транзакции 7011
Последние изменения: 09.09.2020

Справочник ошибок (код ответа на ЧЕКЕ)

Код ошибки Описание ошибки Категория / Решение
00 Одобрено Разрешение транзакции
85 Нет причины для отказа Разрешение транзакции
06 Ошибка Повторить попытку
12 Недействительная транзакция, ошибка в сети Повторить попытку
13 Неправильно введена сумма Повторить попытку
21 Отсутствие действий (не совпали данные) Повторить попытку
30 Неправильный формат Повторить попытку
32 Частично завершено Повторить попытку
68 Слишком поздно получен ответ Повторить попытку
76 Предыдущее сообщение не найдено (MC) Повторить попытку
80 Ошибка сети Повторить попытку
81 Ошибка удаленной сети (Visa) Повторить попытку
82 Тайм-аут при соединении с узлом эмитента (МС) Повторить попытку
83 Транзакция неудачна Повторить попытку
86 Невозможно проверить PIN Повторить попытку
88 Ошибка шифрования PIN Повторить попытку
89 Ошибка идентификации Повторить попытку
94 Дублирование передачи Повторить попытку
96 Неисправность системы Повторить попытку
ОБ Не обслуживать Отказать в транзакции
14 Недействительный номер карты Отказать в транзакции
15 Узел банка-эмитента не найден в сети Отказать в транзакции
17 Отменено клиентом Отказать в транзакции
31 Эмитент не найден в платежной системе Отказать в транзакции
38 Не осталось попыток ввода pin Отказать в транзакции / Изъять карту
39 Нет кредитного счета клиента Отказать в транзакции
51 Недостаточно средств на счете Отказать в транзакции
52 Нет текущего / указанного счета клиента Отказать в транзакции
53 Нет накопительного счета клиента Отказать в транзакции
57 Тип транзакции не предусмотрен для данной карты Отказать в транзакции
58 Тип транзакции не предусмотрен для pos-терминала Отказать в транзакции
61 Сумма авторизации превысила расходный лимит по карте Отказать в транзакции
62 Запрещенная карта, изъятию не подлежит Отказать в транзакции
64 Сумма отмены авторизации отлична от суммы оригинальной авторизации Отказать в транзакции
65 Превышен лимит расходных операций по счету Отказать в транзакции
66 Карта недействительна, изъятию не подлежит Отказать в транзакции
67 Карта изъята в банкомате Отказать в транзакции
75 Число неправильно введенных пин-кодов превысило разрешенное количество Отказать в транзакции
76 Число неправильно введенных пин-кодов достигло разрешенного количества (visa) Отказать в транзакции
77 Данные не совпадают с оригиналом Отказать в транзакции
82 Неправильный CVV (visa) Отказать в транзакции
91 Нет связи с банком эмитентом Отказать в транзакции
92 Неудачный запрос, маршрутизация невозможна Отказать в транзакции
93 Транзакция не может быть завершена – эмитент отклонил авторизацию из-за нарушения правил Отказать в транзакции
Q1 Аутентификация карты не прошла Отказать в транзакции
04 Авторизация отклонена, изъять карту Изъять карту
05 Авторизация отклонена, оплату не проводить Изъять карту
07 Изъять карту (специальное условие) Изъять карту
33 Истек срок действия карты (изъять карту) Изъять карту
36 Запрещенная карта, изъять Изъять карту
37 Отозвана эмитентом, изъять Изъять карту
41 Карта утеряна, изъять Изъять карту
43 Карта украдена, изъять Изъять карту
54 Истек срок действия карты, изъятию не подлежит Изъять карту
01 Авторизация отклонена. Обратиться в банк-эмитент Обратиться в банк
02 Авторизация отклонена. Обратиться в банк-эмитент (специальное условие) Обратиться в банк
03 Незарегистрированная торговая точка или агрегатор платежей Обратиться в банк
08 Обслуживать с идентификацией по документу и подписи Обратиться в банк
37 Позвонить в банк-эквайрер Обратиться в банк
55 Неправильный PIN Обратиться в банк
81 Ошибка в шифре PIN (MC) Обратиться в банк
NX Внутренняя ошибка терминала, например, отсутствие маршрута сети или сброс ip-адреса Техническая проблема
Z1 Техническая ошибка терминала; если нет приоритета pin, то карта не обслуживается Техническая проблема
Z3 Невозможно передать авторизационный запрос в онлайновом режиме; отклонено в оффлайновом режиме Техническая проблемаРешение:Перезагрузите терминал. При включении терминала на экране появится надпись “Для режима работы с кассой нажать F” – нужно нажать F;Далее:- Работа с кассой? да – зеленая;- Настройка – зеленая;- Интерфейс – зеленая;- канал -зеленая;- USB – зеленая;- Шаг назад (красная);- Сеть – зеленая;- IP через кассу – зеленая;- Да – зеленая;- 2 шага назад (2 раза на красную) и выбрать “Сохранить”

Источник: https://life-pay.omnidesk.ru/knowledge_base/item/161470?sid=38791

Транзакции: правила использования

Тип транзакции 7011

#std783

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

Транзакции применяются для целостного изменения связанных данных, т.е. все действия с базой данных, выполняемые в рамках транзакции или выполняются целиком, или целиком откатываются.

1. Использование транзакций в 1С:Предприятии обладает рядом особенностей:

Эти особенности накладывают ряд требований к написанию кода с использованием транзакций. Несоблюдение этих требований может приводить к возникновению ошибок вида «В этой транзакции уже происходили ошибки», которые может быть крайне сложно воспроизвести и отладить.

1.1. Поскольку исключение не отменяет транзакцию сразу, но запрещает успешное завершение транзакции, то все вызовы НачатьТранзакцию с одной стороны и ЗафиксироватьТранзакцию или ОтменитьТранзакцию с другой стороны должны быть парными.

1.2. Начало транзакции и ее фиксация (отмена) должны происходить в контексте одного метода

Правильно

Процедура ЗаписатьДанныеВИБ()

    НачатьТранзакцию();

    Попытка        … // чтение или запись данных        ДокументОбъект.Записать()        ЗафиксироватьТранзакцию();    Исключение        ОтменитьТранзакцию();        … // дополнительные действия по обработке исключения

    КонецПопытки;

КонецПроцедуры

Неправильно

Процедура ЗаписатьДанныеВИБ()     НачатьТранзакцию();

    ЗаписатьДокумент();

КонецПроцедуры;

Процедура ЗаписатьДокумент()

    Попытка        … // чтение или запись данных        ДокументОбъект.Записать()        ЗафиксироватьТранзакцию();    Исключение        ОтменитьТранзакцию();    … // дополнительные действия по обработке исключения

    КонецПопытки;

КонецПроцедуры

1.3. При использовании транзакций необходимо предусмотреть обработку исключений, придерживаясь следующих правил:

  • метод НачатьТранзакцию должен быть за пределами блока Попытка-Исключение непосредственно перед оператором Попытка;

  • все действия, выполняемые после вызова метода НачатьТранзакцию, должны находиться в одном блоке Попытка, в том числе чтение, блокировка и обработка данных;

  • метод ЗафиксироватьТранзакцию должен идти последним в блоке Попытка перед оператором Исключение, чтобы  гарантировать, что после ЗафиксироватьТранзакцию не возникнет исключение;

  • необходимо предусмотреть обработку исключений – в блоке Исключение нужно сначала вызвать метод ОтменитьТранзакцию, а затем выполнять другие действия, если они требуются;

  • рекомендуется в блоке Исключение делать запись в журнал регистрации;
  • при использовании вложенных транзакций (см. п. 1.4) в конце блока Исключение рекомендуется добавить оператор ВызватьИсключение.

      В противном случае исключение не будет передано выше по стеку вызовов, там не сработает обработка исключения, внешняя транзакция не будет явным образом отменена и платформа вызовет исключение «В данной транзакции происходила ошибка»

Пример

НачатьТранзакцию();Попытка    БлокировкаДанных = Новый БлокировкаДанных;    ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(“Документ.ПриходнаяНакладная”);    ЭлементБлокировкиДанных.УстановитьЗначение(“Ссылка”, СсылкаДляОбработки);    ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный;

    БлокировкаДанных.Заблокировать();

    … // чтение или запись данных

    ДокументОбъект.Записать();

    ЗафиксироватьТранзакцию();Исключение

    ОтменитьТранзакцию();

    ЗаписьЖурналаРегистрации(НСтр(“ru = 'Выполнение операции'”),        УровеньЖурналаРегистрации.Ошибка,        ,        ,
        ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));

    ВызватьИсключение; // есть внешняя транзакция

КонецПопытки;

1.4. Использование вложенных транзакций приводит к усложнению кода. Принимая решение об использовании этой возможности, нужно очень взвешенно оценить решаемую задачу: возможно, это усложнение просто не оправдано.

1.4.1. Не стоит усложнять код, явно используя метод НачатьТранзакцию, когда кроме записи объекта другие действия c базой данных не делаются – платформа при записи сама откроет транзакцию.

Не нужно явно открывать транзакцию тогда, когда не требуется выполнять ответственное чтение данных. Например, обычно ответственное чтение не требуется при записи нового объекта (нового набора записей регистра).

При использовании методов ПолучитьОбъект (или Прочитать для наборов записей) необходимо анализировать должно ли чтение быть отвественным и в зависимости от этого принимать решение о явном использовании метода НачатьТранзакцию.

Правильно

Попытка    ДокументОбъект = Документы.ПриходнаяНакладная.СоздатьДокумент();    … // действия по заполнению объекта    ДокументОбъект.Записать();Исключение    … // действия по обработке исключения

КонецПопытки;

Неправильно

НачатьТранзакцию();Попытка    ДокументОбъект = Документы.ПриходнаяНакладная.СоздатьДокумент();    … // действия по заполнению объекта    ДокументОбъект.Записать();    ЗафиксироватьТранзакцию();Исключение    ОтменитьТранзакцию();

КонецПопытки;

1.4.2. Если метод рассчитан на вызов только в рамках уже открытой транзакции (например, метод предназначен для вызова только из событий ПередЗаписью, ОбработкаПроведения и т.п.) в общем случае явным образом открывать в нем транзакцию не имеет никакого практического смысла.

1.4.3. При необходимости повысить качество сообщений об ошибках – на каждом уровне разработчик может предусмотреть свою обработку исключений, для чего, возможно, потребуется открыть вложенную транзакцию.

Пример

Вызывается метод ДобавитьЭлектроннуюПодпись. Внутри, если что-то пошло не так, нужно обработать исключение и добавить текст вида: «Не удалось добавить электронную подпись к объекту %ПредставлениеОбъекта% по причине:%ОписаниеОшибки%».

В противном случае исключение будет обработано выше по стеку вызовов, например, при записи файла и будет выдано сообщение вида: «Не удалось записать файл %ИмяФайла% по причине: %ОписаниеОшибки%», где в «%ОписаниеОшибки%», будет просто указание на строчку кода и пользователю будет не понятно, зачем вообще программа записывала файл, если он просто его подписывал.

1.4.4. При обработке исключения, если транзакция все еще активна, например, исключение возникло во вложенной транзакции, нельзя обращаться к базе данных, так как это приведет к исключению «В этой транзакции уже происходили ошибки». При этом нужно учитывать, что обращение к базе данных может быть неявным, например, для получения представления ссылки.

2. Ограничение на длину транзакции.

2.1. В общем случае в рамках одной транзакции нужно выполнять только те действия, которые неделимы, исходя из бизнес-логики.

Пример

При проведении документа записывается документ и его движения в регистрах. Если не прошла запись хотя бы в один регистр вся операция проведения должна быть отменена.

2.1.1. Если с точки зрения бизнес-логики действия могут быть выполнены по отдельности, то их в общем случае не следует объединять в одну транзакцию.

2.1.2. Исключением из п.2.1.1 могут быть случаи, когда с целью оптимизации несколько несвязанных объектов обрабатываются в рамках одной транзакции. В этом случае необходимо взвешенно подходить к выбору порции обработки данных: нужно стремиться к достижению золотой середины между длительностью одной транзакции и объемом фиксируемых данных с одной стороны и количеством транзакций с другой.

2.2. Следует избегать транзакций, которые выполняются длительное время.

Пример

Неправильно

Для загрузки адресного классификатора ФИАС записывать все данные, относящиеся к одной версии классификатора в одной транзакции, для того, чтобы в случае ошибки откатить целиком загружаемую версию классификатора.

Т.к. данных по одной версии классификатора много (объем около 1 Гб), то для выполнения такой транзакции, во-первых, может не хватить оперативной памяти (особенно при использовании файловой информационной базы на 32-разрядной ОС), а, во-вторых, такая операция будет выполняться достаточно долго и ее нельзя будет оптимизировать за счет выполнения в несколько потоков.

Правильно

Разбить загрузку новой версии классификатора ФИАС на небольшие транзакции и реализовать функциональность по откату к предыдущей версии в случае ошибки.

См. также Особенности использования транзакций при обмене данными

2.2.1 Чем дольше выполняется транзакция, тем большее время будут заняты ресурсы сервера 1С:Предприятия и СУБД. Как правило длинные транзакции занимают следующие ресурсы:

  • в ходе выполнения транзакции все изменения в базе данных записываются в журнал транзакций, что необходимо для возможности откатить транзакцию;
  • блокировки, установленные в транзакции, остаются до конца транзакции;
  • на сервере 1С:Предприятия блокировки занимают оперативную память;
  • другие ресурсы, необходимые самой бизнес-логике, которая выполняется в транзакции.

Все это в целом может снижать эффективность использования ресурсов.

2.2.2. Если две транзакции пересекаются по блокируемым ресурсам, то транзакция, которая начала выполняться позже, будет ожидать возможность установления блокировки ограниченное время (по умолчанию – 20 секунд), после чего будет завершена с исключением «Превышено время ожидания установки блокировки». Поэтому длинные транзакции могут сильно снижать удобство параллельной работы пользователей.

Возникновение таких исключений – это повод провести анализ действий, которые выполняются в конфликтующих транзакциях

  • возможно, какие-то действия можно вынести за транзакцию (см. п. 2.4);

  • если действие вынести нельзя, то нужно постараться оптимизировать алгоритм его выполнения;

  • так же нужно проанализировать оптимальность устанавливаемых блокировок (см. группу стандартов Избыточные блокировки и методы оптимизации)

2.3. В рамках транзакции нужно стремиться выполнять минимум действий – только те, которые нельзя в соответствии с бизнес-логикой выполнять вне транзакции. В частности:

  • сложные, ресурсоемкие расчеты нужно стремиться делать до начала транзакции, если это позволяет бизнес-логика;

  • если расчет должен выполняться в транзакции, то нужно стремиться сделать его как можно более простым. Например, контроль остатков можно делать уже после записи простым запросом к записываемому регистру;

  • запросы, перед выполнением которых не нужно устанавливать блокировку данных, нужно стремиться выполнять до начала транзакции (см. Ответственное чтение данных);
  • запросы, выполняемые в рамках транзакций нужно стремиться оптимизировать (см. группу стандартов Оптимизация запросов)

Источник: https://its.1c.ru/db/content/v8std/src/200/300/i8100783.htm

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.