Что такое хэш пан карты
Термин «номер основного счета» относится к 14, 15, 16- или даже 19-значному номеру, сгенерированному в качестве уникального идентификатора, назначенного для основной учетной записи. Номера основных счетов также называются номерами платежных карт, поскольку они встречаются на платежных картах, таких как кредитные и дебетовые карты. Этот номер счета либо тиснен, либо напечатан лазером и находится на лицевой стороне карты.
Краткий обзор
Первичные номера счетов тиснены или напечатаны лазером и могут быть найдены на лицевой стороне карты.
Ключевые выводы
- Номер основной учетной записи – это 14, 15- или 16-значное число, созданное как уникальный идентификатор для основной учетной записи.
- Первичные номера счетов присваиваются платежным картам, таким как кредитные и дебетовые карты, а также другим картам, на которых хранится стоимость, например подарочной карте.
- Хотя они могут использоваться в качестве идентификатора, номера PAN не всегда предоставляют точную информацию о счете, как в случае с дебетовыми картами.
- PAN могут использоваться для поддержки ведения учета и разрешения учетных записей.
Понимание основных номеров счетов
Основные номера счетов – это уникальные идентификаторы для различных платежных карт, таких как кредитные и дебетовые карты, предоставляющие информацию о держателе карты, такую как имя, баланс, кредитный лимит. PAN также могут использоваться для идентификации других типов карт, на которых хранится стоимость, таких как подарочная или предоплаченная карта.
Поскольку они могут быть единственным номером, связанным с определенной учетной записью, как в случае кредитной карты, номера основных учетных записей также называются номерами счетов. В других случаях они могут не идентифицировать точную информацию о связанной учетной записи. Например, номер дебетовой карты не отражает и не идентифицирует номера счетов каких-либо связанных чековых, сберегательных или других счетов.
Номер основного счета обычно генерируется при открытии счета. Поэтому обычно это первый счет в серии, который может быть открыт клиентом в финансовом учреждении. Номер основного счета также обычно является номером, обозначенным линией обмена в кредитном отчете лица. PAN могут поддерживать ведение учета учетной записи и решение, если с учетной записью возникнут проблемы.
Особые соображения
Самая первая цифра номера основного счета называется основным отраслевым идентификатором, который определяет тип кредитной карты компанией-эмитентом.
- Карты American Express начинаются с цифры 3 начинаются с цифры 4
- Карты MasterCard начинаются с цифры 5. начинаются с цифры 6
- Некоторые кредитные карты авиакомпаний начинаются с цифры 1 или 2.
- Карточки нефтяных компаний начинаются с цифры 7
- Некоторые телекоммуникационные и медицинские карты начинаются с цифры 8.
Первые шесть цифр идентифицируют сеть кредитной карты, связанную с картой, например 601100 для карт Discover. Последняя цифра называется номером контрольной суммы, который помогает предотвратить создание злоумышленниками поддельных номеров кредитных карт. Цифры между первыми шестью и последней цифрами однозначно идентифицируют счет клиента.
Номера основных счетов против номеров дополнительных счетов
Финансовые учреждения и кредиторы могут выпускать дебетовые и кредитные карты вторичному пользователю, уполномоченному основным владельцем счета. Если у учетной записи есть дополнительный владелец учетной записи, обе карты могут использовать номер основного счета. Однако в некоторых учреждениях существует политика выдачи карт, которая позволяет вторичному пользователю иметь номер вторичного счета.
Счета бизнес-кредитных карт работают немного иначе. Номер основного счета для корпоративных кредитных карт не отображается ни на одной кредитной карте сотрудника. В этом случае компания, выпускающая кредитные карты, выдает каждому сотруднику карту с отдельными дополнительными номерами счетов. Это упрощает компаниям идентификацию и отслеживание расходов на основе использования карты каждым сотрудником.
Банковские пластмассовые карты уже несколько десятков лет как вошли в жизнь населения земли . На нашем рынке банки начали массово внедрять их около 15 годов назад и на данный момент пластмассовые банковские карты получили достаточно обширное распространение.
Платежная карта , еще не так давно бывшая лишь модным аксессуаром предпринимателя , на сегодня может находиться в кармане студента, пенсионера, служащего, рабочего – словом хоть какого общественного и имущественного слоя современного общества.
Удобство использования, компактность, высочайшая безопасность транзакций, также прием платежей в любом гипермаркете и обширное распространение банкоматов и платежных терминалов, обусловило огромную известность этого вида системы расчетов, лишила необходимости всюду носить с собой валютные знаки, и одновременно иметь неизменный доступ ко всем своим средствам на счету и производить покупки при необходимости в любом магазине и на всякую сумму.
Кроме того, , важным фактором является возможность моментального предоставления кредита , в неких вариантах беспроцентного, в случае, если сумма на вашем карточном счету недостаточна для подходящей для вас покупки.
Что такое Pan? При настолько высочайшем распространении банковских пластмассовых карт , которые стали уже обычным спутником каждого человека, не много кто может понятно разъяснить , как они устроены и как работают.
Остановимся на данном мало по-детальнее . Любая платежная карта представляет собой маленький кусочек гибкого пластика, снабженного с одной стороны магнитной лентой. Данная лента является некоторым паролем , считываем?? устройством платежного терминала. Информация, которую считывают устройства с пластиковой карты , именуется Pan – типичный идентификатор. как отключить услугу альфа чек Хотите выяснить , как отключить услугу Альфа Чек?
Аннотация , а так же детальная информация по этому вопросу, размещена по предложенной ссылке . А если для вас любопытно , как оформить страхование жизни при ипотеке в Сбербанке 2016, то для вас просто нужно перейти по ссылке и прочитать статью. Для каких целей он нужен ?
Для обеспечения безопасности транзакций оплаты либо перевода средств с вашего карточного счета при помощи пластиковой карты вводится особенный неповторимый код , который состоит из последовательности цифр. Это и есть, так именуемый pan-код. Код написан на лицевой стороне карты и или написан при помощи краски, или является выпуклым, для обеспечения большей долговечности – ведь краска быть может стерта от времени и ношения в карманах одежки . Он бывает 13-ти либо 16-тизначный.
Кроме того, , код продублирован на магнитной ленте , которая расп оложена на задней части карты и записанный в виде компьютерного кода.
Что все-таки обозначают эти числа ? Индивидуальности пластмассовых карт ↑ Суть в том , что главной неувязкой , которой уделяется особенное внимание, является безопасность использования карты, чтоб злодей не мог совершить мошенничество и похитить либо пользоваться вашими средствами . 2-ое , что необходимо обеспечить – это неотказная и точная работа пластиковой карты , отсутствие просчетов при использования . Изготовка и устройство пластмассовых карт регламентируется интернациональным эталоном ISO/Mac 7812-1 , разрабатывающ?? и выдает организациям, интернациональная система SWIFT. В нашей стране сотворен схожий эталон ГОСТ Р-50809-95. кредиты пенсионерам в втб 24Вас интересует вопрос получения займа пенсионерам? Мы готовы предоставить для вас статью о банке ВТБ 24 и его критериях по кредиту пенсионерам. Публикация размещена по ссылке. Если вас интересует вопрос — почему сбербанк отказывает в займе , то для вас нужно ознакомиться со статьей , которая расположена по ссылке. А детальная информация о страховании займа в Сбербанке, размещена тут . Как его используют ? ↑ Для правильной и штатной работы пластмассовой карты предвидено последующее распределение существующих в пан-коде цифр: 1-ые 6 цифр – код эмитента карты –идентификатор банка , который выдал для вас ее, либо так именуемый , bin-код карты. Последующая последовательность из 7, 10 либо 13 цифр ( зависимо от конструкции) – фактически номер карты. Крайняя цифра- проверочная либо контрольная, служащая для недопущения просчетов . Обычно , в нашей стране употребляется последовательность из 16 цифр из которых 1-ые 6 – это бин карты. Необходимо подчеркнуть, что на магнитной ленте содержится большее количество инфы , разные доп проверочные знаки , разделители, указывается срок деяния карты и остальные сервисные коды, служащие надежности и безопасности работы. В сознании юзеров часто случается неурядица — люди путают pan и pin-коды собственной карты. Пан-код — это, как мы произнесли выше, сначала идентификатор, а пин-код — ваш индивидуальный скрытый пароль, который должен быть известен только юзеру и обладателю счета. Не передавайте и не сообщайте никому собственный пин-код и тем паче не записывайте его на самой карте – постоянно держите его в памяти, по другому вы рискуете столкнуться с огорчительными недоразумениями и потерей собственных средств . По собственному назначению существует достаточно много видов пластмассовых банковский карт, выпущенных в различное время, созданных для работы в различных платежных системах, но пан-код у всех схож по назначению и вне зависимости от количества цифр в нем сумеет быть прочитан хоть каким банкоматом либо терминалом. При осторожном и аккуратном обращении с картой и соблюдении нужных мер безопасности вы навряд ли столкнетесь с трудностями в использовании этой, на сегодня , наверное, самой комфортной системой расчетов – пластмассовой банковской картой.
According to this blog PAN number should be hashed using a "secret salt". What they are doing is basically H(Message+salt). The reason you need this "secret salt" is because PAN numbers are limited to certain amount of numbers, which makes bruteforcing dead easy.
I was wondering if a keyed-hash (HMAC) would not be more approriate in this case rather than using a secret salt?
If a keyed HMAC is used, can the same secret be used for all PAN numbers or should it be unique for every single PAN? (so use multiple secrets)
Безопасность номера основного счета
Компании-эмитенты кредитных карт, такие как Visa, просят продавцов принять меры для защиты номеров основных счетов клиентов. Один из таких правил называется усечением PAN. Visa заявляет, что продавцы не обязаны хранить полные номера счетов. Это представляет угрозу безопасности в случае утечки данных. В Соединенных Штатах федеральный закон под названием «Закон о справедливых и точных кредитных операциях от 2003 года» (FACTA) запрещает продавцам печатать на квитанции более 5 последних цифр номера счета держателя карты. Продавцам также запрещено печатать дату истечения срока действия карты.
Краткий обзор
Первичные номера счетов тиснены или напечатаны лазером и могут быть найдены на лицевой стороне карты.
1 Answer 1
"Hashing with a secret salt" is a misnomer, because that's not hashing, and that's not a salt either.
In cryptography, something which is secret is called a key. Hashing uses no key; a sort-of hash which uses a key and requires the key to be verified is called a MAC. A MAC is not necessarily a "hash with key", and stuffing a key into a hash function does not necessarily results in a good MAC. However, it is possible to take a hash function and turn it into a secure MAC, and that's HMAC.
HMAC is a secure MAC: you can use the same key for MACing many elements with no ill effects. If you could not, then the MAC algorithm would be deemed very weak; but HMAC Is considered secure. HMAC also has the very nice property of not requiring an IV, so it is quite hard to get it wrong.
Of course a MAC is not necessarily the right tool for the problem at hand. Apparently, people want to turn PAN numbers into "something unreadable". However, the simplest solution (simply don't store the PAN at all) appears not to be popular, so one has to assume that people who "hash" the PAN still want to get something out of it.
There are two main use cases:
- The PAN is hashed so that an ulterior presentation of the same PAN can be verified to match the stored value.
- The PAN can be recovered from the stored value, subject to knowledge of some secret.
A MAC would be appropriate for the first use; if the MAC uses an IV (e.g. like CBC-MAC, but unlike HMAC), then the IV must be stored as well, and that one will have extra requirements (typically, to be distinct for each usage instance, or even uniformly random), which gives ample room for critical failures. HMAC is thus highly recommended.
For the second use case, you need encryption (symmetric or asymmetric, depending on the context).
В связи с появлением статьи «Путешествия банковской транзакции», в рамках которой стали появляться вопросы по механизму проверке PIN, хотелось бы несколько уточнить данный вопрос. В данной статье будет рассмотрен только вопрос проверки т.н. online PIN, т.е. PIN, который вводится на терминале и передается для дальнейшей проверки в систему, которая выполняет авторизацию транзакции.
Прежде чем приступать непосредственно к вопросу прокерки PIN'а карты, остановимся на некоторых теоретических вопросах.
Прикладная криптография
Алгоритм DES
В настоящий момент, основным алгоритмом шифрования для всех действия с банковскими картами является алгоритм DES (а не 3DES, который используется только для операций шифрования, преимущественно, транспортного уровня). Не вдаваясь в терминологию и классификацию алгоритмов шифрования, просто скажу, что это блочный алгоритм шифрования с размером блока 8 байт и ключом в 56 бит (7 байт). На практике, ключ DES принято представлять в виде блока из 8 байт, где в каждом байте старшие 7 бит ялвются значащими, а последний бит — незначащим. Он может использоваться для контроля целостности ключа (об этом — далее).
Т.к., в настоящее время, ключ длинной 56 бит является недостаточным, с точки зрения безопасности, то вместо алгоритма DES для шифрования принять использовать алгоритм 3DES в режиме EDE (здесь и далее под обозначением 3DES я буду подразумевать именно использование схемы EDE). Обычно, в банковской среде применяется алгоритм 3DES с ключом двойной длинны (112 бит, 16 байт), при которой на первом и третьем шаге (см. описание алгоритма) применяется один и тот же ключ.
Алгоритмы проверки PIN
На данный момент, в основном, используются следующие 2 алгоритма проверки PIN: Visa PVV и IBM 3624 PIN offset.
Visa PVV
Данный алгоритм первоначально был разработан платежной системой Visa, но, в настоящее время является рекомендованным алгоритмом проверки PIN как для карт Visa, так и для MasterCard. В основе данного алгоритма лежит значение PVV (PIN verification value), которое является криптограммой, получаемой на основе следующих величин:
- Номер карты (далее PAN)
- Индекс ключа проверки PIN (PIN verification key index, далее, PVKI)
- Ключ проверки PIN (PIN verification key, далее, PVK)
- Сам PIN код карты
- Принципиальная невозможность восстановления PIN из значения PVV
- Использование PIN кода размером строго 4 цифры
IBM 3624 PIN offset
Данный алгоритм первоначально был разработан компанией IBM для использования в банкоматах IBM 3624. Как именно планировалось его использовать, история умалчивает, а автори статьи не знает, но, в данном случае, это не принципиально. В настоящее время данный алгоритм считается устаревшим, но достаточно успешно используется по нескольким причинам:
- карточные системы «старых» регионов (Западная Европа, Северная Америка) достаточно консервативны и, во многом, работают на «достаточно» старых системах, что их вполне устраивает
- данный алгоритм позволяет восстановить значение PIN кода из проверочного значения (см. далее), что м.б. весьма полезно при определнных условиях
В основе данного алгоритма лежит значение PIN offset (PIN verification value), которое является криптограммой, получаемой на основе следующих величин:
- Контрольное значение (Validation data, далее VD) — некоторое значение (обычно — часть номера карты, но это не обязательно)
- Децимализационная таблица (Decimalization table, далее DT)
- Ключ проверки PIN (PIN verification key, далее, PVK)
- Сам PIN код карты
- Шифрование ключа под т.н. Мастер ключом HSM в различных вариантах. В этом случае само значение ключа хранится в зашифрованном виде на внешнем носителе (обычно — в процессинговой системе) и передается в HSM во время выполнения операции. В этом случае при выполнении операции HSM сначала расшифровывает ключ с помощью Мастер ключа, после чего уже выполняет, непосредственно, ту операцию, которая была запрошена
- Хранение ключа в защищенном внутреннем хранилище HSM. В этом случае, обычно, на вход подается идентификатор ключа, по которому HSM извлекает его из внутреннего хранилища.
Проверка PIN
Терминология
- PIN блок — значение PIN кода карты, некоторым специальным образом упакованной в блок из 8 байт. Стоит пояснить, что никакого шифрования в данном процессе не используется. Способы упаковки, в данном случае, бывают разные, но это не принципиально.
- Зашифрованный PIN блок — значение PIN блока, зашифрованное по алгоритму DES/3DES с помощью ключа (ключа терминала, банка, платежной сети, пр.), специально выделенного для целей шифрования PIN блока.
- Проверочное значение PIN — PVV или PIN offset в зависимости от того, какой метод проверки PIN используется.
- Дополнительные данные проверки PIN — данные, кроме PIN и проверочного значения PIN, необходимые для проверки PIN в соответствии с алгоритмами Visa PVV/IBM 3624 PIN offset в соответствии со списком, приведенным в описании алгоритмов (см. выше).
Требования платежных систем
- Открытые значения PIN и PIN блока не должны никаким образом передаваться, храниться или обрабатываться вне специально отведенных программно аппаратных комплексов (HSM на стороне процессинговых систем или EPP и некоторых других страшных абревиатур на стороне терминальных устройств(банкоматы, POS-терминалы и пр.)).
- Зашифрованный PIN блок не должен храниться после завершения операции в системах, отвечающих за онлайн/оффлайн обработку транзакций (есть еще системы, отвечающие за выпуск самих карт, их это требование не касается).
Проверка PIN
- Сам PIN, который мы будем проверять
- Проверочное значение PIN
- Дополнительные данные проверки PIN
Далее необходимо определиться с проверочным значением PIN и дополнительными данными.
Первый вариант — это хранение проверочного значения на магнитной полосе карты после поля Service Code. Модифицированную версию ISO 7813 с указанием того, где хранится PVV, можно посмотреть здесь. По приведенному описанию формата треков стоит добавить, что под 5-и символьным значением PVV подразумевается следующая последовательность 1 символ PVKI и 4 символа самого PVV, а для PIN offset — значение PIN offset для PIN из 5 цифр. Если PIN имеет отличную от 5 цифр длину, то размер PIN offset, соответственно, изменится. Какие плюсы у этого метода. Безусловно — возможность проверять PIN для любого, кто будет иметь необходимые для проверки ключи. Здесь стоит заметить, что при запуске нового карточного подукта в платежную сеть, обычно, передаются ключи, на которых выпущена карта. Таким образом, при использовании данного метода возможность проверки PIN появляется как у самого эмитента карты, так и у платежной сети. К недостаткам такого метода можно отнести то, что данный вариант делает PIN карты статическим до тех пор, пока карта не будет перевыпущена.
Второй вариант — это хранение проверочного значения в некотором хранилище, обычно, БД системы, отвечающей за выполнение проверок при авторизации карты. В этом случае при проверке PIN необхоидмо извлечь проверочное значение из этого хранилища, а уже потом, выполнять проверку, используя это значение. Как следствие, при использовании данного метода, невозможно вполнять проверку PIN во внешней системе (в той же платежной системе) и она м.б. выполнена только в той системе, которая имеет доступ к хранилищу проверочных значений. Однако, такая система позволяет изменять PIN код карты без каких либо затрат на смену пластика (для чего это нужно, что при этом необходимо сделать и какие после этого м.б. проблемы, описывать не буду, т.к. это находится за рамками данной статьи).
Независимо от того, каким образом и кем (эмитент карты или платежная сеть) была получена вся необходимая информация, сама проверка PIN выполняется на HSM, который для выполнения проверки получает ключ PPK в защищенном виде, ключ проверки PIN в защищенном виде, зашифрованный PIN блок, проверочное значение PIN и дополнительные данные проверки, в ответ на что возвращается только результат проверки: верный PIN, неверный PIN, прочая ошибка. Т.е. в процессе проверки система, отвечающая за авторизацию, с самим открытым значением PIN кода никак не соприкасается.
Используемые материалы:
[1] Visa Payment Technology Standards Manual, лет 5 назад, на просторах интернета можно было найти версию данного документа за 2007 год, сейчас, при беглом происке, доступна только версия от 2004 года
Давайте поговорим о платежных технологиях и что происходит, когда клиент хочет оплатить услугу на сайте или в интернет-Банке, сделать перевод или нам просто необходимо настроить интеграцию с агрегатором, магазином или платежной системой в целях вывода их услуг в своих дистанционных каналах обслуживания.
Здесь будет представлена серия статей, которая поможет начинающим специалистам в ИТ, занимающихся платежными технологиями, ответить на вопрос: «как писать исходящий шлюз с платежной системой или агрегатором», «как решить вопрос с расхождениями при сверках», как реализовать интеграцию с международной платежной системой.
Устраивайтесь поудобнее, будет интересно.
Часть 1: Проведение и подтверждение платежа
Клиент для оплаты услуг как правило авторизуется в интернет-Банке, выпустившим его карту: Банку-Эмитенту его карты.
Далее в интернет-Банке, выбирает услугу для оплаты: пополнение мобильного телефона, оплаты интернета или услуг ЖКУ.
В базе поставщика услуги, например оператора сотовой связи, у клиента есть свой уникальный идентификатор – номер телефона.
Чтобы оплатить услугу клиент вводит свой идентификатор и сумму пополнения, нажимает кнопку «подтвердить платеж».
А дальше ему отображается пред чек с идентификатором пополнения и суммой пополнения. Он подтверждает оплату и далее интернет-Банк отображает ему чек. Клиент радостный уходит. Деньги «моментально» поступают на его номер телефона.
Это для клиента так. А давайте посмотрим, как это выглядит внутри систем.
Витрина – в данном случае, интернет-Банк клиента;
Банк клиента – он же оператор по переводу денежных средств, он же Банк-Эмитент, выпустивший карту клиента, и он же расчетный Банк по переводам средств клиента Сервис-Провайдеру;
Сервис-Провайдер – юридическое лицо, оказывающее услуги зачисления средств Поставщику, его часто называют «Мерчант». Сервис-Провайдер имеет прямые договора со многими поставщиками услуг, и чтобы Банку не настраивать интеграцию с каждым из них, на рынке есть компании-посредники: Сервис- Провайдеры, еще их называют агрегаторами, платежными системами. Они уже настроили интеграцию с Поставщиками услуг и предоставляют большое количество сервисов за определенный процент;
Наш оператор сотовой связи – Поставщик услуг;
И у Сервис-Провайдера и у Поставщика услуг есть свои расчетные Банки. В итоге, Банк Сервис-Провайдера в офлайне перечислит денежные средства на счет Поставщика услуг в целях зачисления на счет клиента. Но об этом в следующих статьях.
Я буду использовать сущности: Банк, Мерчант и Витрина для описания онлайн взаимодействия внутри систем.
Центральной фигурой в нашем взаимодействии является Банк клиента.
У Банка задача не только проверить наличие денежных средств у клиента, но и доставить их Сервис-Провайдеру. Для выполнения этого условия Банк, как правило, пишет два шлюза либо использует текущие:
Исходящий: от Банка к Мерчанту;
Оба эти шлюза могут работать как по тождественному протоколу, так и по разным.
Мы рассмотрим самый простой вариант: витрина Банка, Банк и Мерчант работают по одному сквозному протоколу, представленному всего двумя методами: check и pay.
Описание процесса проведения и подтверждения платежа в этом случае выглядит следующим образом:
Сиквенс проведения и подтверждения платежа
Описание процесса проведения и подтверждения платежа
Клиент выбирает услугу;
Витрина Банка проверяет наличие услуги у себя в Базе данных;
2.1 Если услуга найдена, формирует запрос в Банк на холдирование денежных средств в Процессинге. Далее формирует запрос на возможность совершение платежа check:
2.2 Если услуга не найдена, завершает процесс ошибкой, клиент уходит;
Витрина инициирует check;
В Банк поступает запрос check. Далее Банк маршрутизирует запрос Мерчанту;
Мерчант принимает запрос, выполняет проверку совершения платежа;
5.1 Если зачисление возможно, отправляет успех, клиенту отображается пречек. Система Банка ожидает подтверждение платежа;
5.2 Если зачисление невозможно, Банк отправляет код ошибки, витрина завершает процесс, проведение невозможно, клиент уходит;
Клиент знакомится с пречеком, нажимает кнопку «подтвердить платеж». Витрина инициирует pay;
Банк присваивает идентификатор транзакции и сразу отправляет ответ на витрину;
Зачисление денежных средств у Мерчанта уже выполняется в офлайне. Банк инициирует pay и, если зачисление возможно, Мерчант присваивает свой идентификатор транзакции и отправляет в Банк успешный ответ. А если зачисление невозможно – спросите Вы? Тогда Мерчант отправляет ответ в Банк с кодом ошибки, и Банк выполняет возврат денежных средств клиенту в автоматическом режиме в тот же день.
Теперь рассмотрит рассмотрим формат запроса и ответа для каждого из методов, за что они отвечают и для чего они нужны
CHECK – проведение платежа
Метод отвечает за возможность совершения платежа. На этом шаге выполняется проверка доступности услуги на витрине, в Банке и у Мерчанта. Мерчант в свою очередь, в онлайне, может сходить к Поставщику и проверить валидность идентификатора пополнения у Поставщика, и, если, он не найден или ошибка, отклонить платеж.
Очень часто на этом шаге закладывают минимальные требования к времени отклика ответа на запрос от Мерчанта, т.к. клиент не будет ждать, пока Витрина Банка, сам Банк и Мерчант проверят доступность услуги.
Отличительной особенностью этого шага является так же расчет комиссии. Комиссии бывают:
Верхняя, или горячая – это комиссия с клиента сверх тела платежа (суммы зачисления);
Нижняя или холодная, это комиссия, которую платит Банку Мерчант;
Смешанная – в этой рубрике мы не будем о них говорить;
В нашем примере на check рассчитывается только комиссия с клиента, нижняя и смешанная комиссии рассчитываются в отдельно. Об этом с следующих статьях.
Структура запроса check/XML, шлюз контура Витрина – Банк:
Time – дата платежа;
type – тип источника списания;
type_number – маскированный PAN карты (примечание: PAN - номер карты) по PCI DSS;
code – код валюты перевода, в примере рубли;
amount – сумма зачисления или, по-другому, тело платежа
commission_amount – сумма с учетом верхней комиссии;
service – цифровой идентификатор услуги, который проверяет есть ли вообще такая услуга в Банке и на витрине;
account – контейнер с идентификатором пополнения, в нашем случае – номер телефона;
Когда клиент на витрине нажимает иконку с оплачиваемой услугой, первое, что выполняет система, это проверяет доступность услуги и если она доступна, то дальше обращается в процессинг для проверки источника списания (поля Type и type_number)
Далее если денежные средства есть, проверяет возможность зачисления денежных средств на номер телефона (phone_number в значении 86248541234)
Подождите, секундочку – спросите вы. Что-то здесь не сходится. Как по маскированному PAN в поле type_number можно проверить наличие денежных средств на карте клиента?
Авторизация в процессинге выполняется перед check и это отдельный метод и отдельный процесс, посмотрите выше на диаграмму процесса. На проведении платежа мы уже работаем с маскированным PAN, т.к. на этом шаге мы проверяем возможность проведения платежа, а не наличие денежных средств на карте клиента.
Далее мы формируем запрос Мерчанту.
Мы не указываем ни PAN, ни тип источника списания, нас интересует только возможность совершения платежа для конкретного сервиса.
Структура запроса check/XML, шлюз контура Банк – Мерчант:
В ответе Мерчант возвращает все те же самые поля, но появляется дополнительный контейнер со статусом обработки операции, а также идентификатор транзакции в поле id
Структура ответа check/XML, шлюз контура Мерчант – Банк:
Такой ответ будет означать, что Мерчант готов к подтверждению платежа клиентом.
В ответе мы у нас будет временный id транзакции у Мерчанта, а так же статус обработки платежа: status_id == Success (успех) и код ошибки равный 0 (успех) в поле errorCode
Не всегда к нам приходят успешные статусы транзакций и не всегда у нас отсутствуют коды ошибок, но об этом мы поговорим в следующих статьях.
Мы сохраняем ответ и обогащаем его необходимыми для витрины полями, присваиваем идентификатору транзакции мерчанта – идентификатор в Банке и отправляем ответ на витрину.
Структура ответа check/XML, шлюз контура Банк – Витрина
Клиент видит экранную форму пречека, с который каждый из нас знаком: там будет сумма платежа, дата, а так же идентификатор пополняемой услуги.
Если клиент со всем согласен, он нажимает кнопку «оплатить». Теперь отменить платеж можно только по письменному распоряжению плательщика, как правило – при личном обращении в Банк.
В запросе витрина может передать как все поля из предыдущего ответа check, так и просто сумму платежа и идентификатор транзакции, полученной на предыдущем шаге.
Мы будем использовать первый вариант.
PAY – подтверждение платежа
Структура запроса pay/XML, шлюз контура Витрина – Банк :
Банк регистрирует платеж, и сразу отправляет ответ с промежуточным статусом обработки операции «в проведении» в ответ витрине
Структура ответа pay/XML, шлюз контура Банк – витрина:
Клиенту печатается чек о приеме к исполнению платежа, с печатью Банка и он уходит.
Подождите - спросите Вы. А что, Банк платежи в систему антифрод не отправляет? Отправляет, конечно, как раз, чтобы у клиентов не было проблем с переводами в адрес «службы безопасности из мест лишения свободы». Для этого каждый платеж отправляется на проверку системой и только после этого Мерчанту. Но этот процесс уникальный в каждой организации и общих правил нет.
Но вы еще к Мерчанту не сходили, не подтвердили у него оплату, не зарегистрировали у него платеж, а уже отпускаете клиента – снова спросите вы?
Все верно, клиент не будет ждать, пока мы сходим и зарегистрируем платеж у Мерчанта, а он свою очередь к своим поставщикам на удаленные системы. Мы уже проверили возможность совершения платежа в онлайне на предыдущем шаге check, а теперь можем отпустить клиента с печатью Банка «в проведении» и зарегистрировать оплату у мерчанта в офлайне.
Для регистрации оплаты у мерчанта, для переданного id транзакции витрины, находим транзакцию мерчанта из предыдущего шага и с ней уже регистрируем платеж.
Структура запроса pay/XML, шлюз контура Банк – мерчант:
Структура ответа pay/XML, шлюз контура мерчант - Банк:
В ответ мерчант сообщает статус обработки транзакции, который может принимать статус успех, в проведении или, если оплата была отклонена, ошибка.
Два статуса финальные, а один промежуточный.
Можно сказать, что на этих статусах обязательства и Банка и Мерчанта перед клиентом завершены.
Подождите, подождите - резюмируете Вы. Как же обязательства завершены? Ведь клиент ушел с чеком, где написано, что Банк всего лишь принял операцию к исполнению, да и Мерчант может отклонить операцию, а клиент уже ушел, что делать?
Да, такое бывает достаточно часто, и для решения этой задачи существует отдельный процесс по запросу финального статуса операции как на стороне витрины, так и на стороне Банка, но об этом в следующих статьях.
Читайте также: