Всем кто верстал, верстает или будет верстать форму для приёма банковских карт дарю плагин CardInfo.js, с помощью которого можно сверстать вот такую форму:
Плагин по номеру карты определяет один из 49 российских банков (потом и прочие страны добавлю), выдаёт вам логотип банка, цвета для фона, ссылку на сайт банка, определяет тип карты, его логотип и прочее. С этими данными делаете что хотите, верстаете любую форму.
Поиграться с формой можно на демо странице. Код плагина и инструкции по установке на гитхабе.
Под катом:
- Пара слов о плагине;
- Про базу банков, и почему их 49, а не 50;
- Про логотипы банков;
- Про логотипы типов;
- Несколько моих вопросов к читателям;
Плагин распространяется через NPM npm install card-info и через Bower bower install card-info. Подключается путём вставки JS файла в HTML страницу, или можно подключить его как модуль в стиле CommonJS или ES6. Подключить можно главный файл со всей логикой и всеми данными о банках (69 KB), или отдельно файл с логикой (5 KB) и отдельной базу банков для нужной страны (вообще пока есть только Россия, так что это на будущее), подробнее в документации на гитхабе. Плагин независим, то есть для своей работы не требует никаких дополнительных библиотек. Весь код плагина покрыт тестами. Работает даже в IE6. Можете погонять тесты в браузере.
Создайте экземпляра класса CardInfo, передав в конструктор в качестве аргумента строку введённую пользователем в поле с номером карты var cardInfo = new CardInfo(number). Экземпляр будет содержать объект с дополнительной информацией о карте:
- Тип карты (Master Card, Visa, и т.д.);
- Путь к логотипу типа (логотипы для каждого типа вместе с плагином, в белом, чёрном и цветном исполнении);
- Название банка на английском и локальном языке банка;
- Путь к логотипу банка (логотипы для каждого банка из базы распространяются вместе с плагином);
- Цвета в которые нужно окрасить форму;
- Цвет текста, который будет хорошо виден на предложенном фоне и будет сочетаться с логотипом;
- Ссылка на сайт банка;
- Название кода безопасности (CVC, CVV, CID или CVN) для данного типа карт;
- Длина кода безопасности для данного типа карты (Обычно 3, но для американ экспресс 4);
- Маска номера карты (Не всегда 0000 0000 0000 0000);
Все данные о банке определяются по первым 6 цифрам номера карты, данные о типе определяются по перым 1–2 цифрам номера карты. При вызове можно передать ещё и настройки, но об этом в полной мере написано в документации на гитхабе. и я не буду повторяться здесь.
Сам плагин никак не привязан к вёрстке и внешний вид формы вы можете сделать каким угодно используя данные полученные с помощью CardInfo.
Про каждый банк в базе плагина известны следующие данные:
- Путь к логотипу банка;
- Название банка на английском;
- Название банка на языке той страны, в которой работает этот банк;
- Ссылки на сайт банка;
- Цвета, в которые стоит окрасить форму для этого банка;
- Цвет текста, который будет хорошо смотреться на форме и сочетаться с логотипом;
- Стиль логотипа: белый, чёрный или цветной (нужно для выбора подходящего логотипа типа, об этом в следующем разделе);
- Перечень шестизначных префиксов карт «BIN» соответствующих этому банку;
По BIN (префиксу) и определяется к какому банку принадлежит карта пользователя. Всего в базе 2573 префикса. В среднем на один банк приходится 52 префикса.
На сайте https://www.banki.ru/ есть информация о 560 российских банках, если бы я нашёл префиксы для всех банков, файл с плагином весил бы много мегабайт. Если бы я скачал и обработал 560 логотипов, подобрал 560 раз цвета для формы и цвет текста, я бы скорее умер от тоски, чем выложил этот плагин.
По-этому было решено взять какое-то оптимальное количество банков, пусть будет 50. Я открыл список банков отсортированный по финансовому рейтингу. и взял 50 первых банков, которые занимаются выпуском кредитных или дебетовых карт. В общем, все самые популярные банки в базу попали.
Префиксы же я взял с сайта BIN Codes. Возможно каких-то префиксов будет не хватать, какие-то будут неверно определять банк, но это будет скорее исключением. BIN Codes имеет платное АПИ, а если берут деньги, значит скорее всего делают более менее качественно. Также я сравнивал наличие некоторых префиксов в базах разных сайтах с префиксами и BIN Codes себя здорово проявили. Их АПИ позволяет только определить банк по префиксу, а передо мной стояла обратная задача. Я написал им, что хочу создать CardInfo.js и мне нужны префиксы 50 российских банков, я готов платить, но не понимаю, что мне делать, учитывая, что ваше АПИ мне помочь не может. И они, дай бог им здоровья, сказали что я могу просто воспользоваться разделом на их сайте, который задачу решает, но пока не отражён в их АПИ, в общем префиксы получилось достать бесплатно.
Информация по каждому банку содержится в отдельно JSON файле, в папке «banks». Когда я создавал базу этих файлов, я не переходил к следующему, пока не заполню все поля в одном файле и не скачаю логотип. В какой-то момент файлов стало много и я перестал понимать, сколько банков уже есть в моей базе. Проверял я так, смотрел информацию о папке и видел там количество файлов внутри папке. Когда их стало 50, я остановился. Но оказалось там спрятался файлик «.DS_Store» который сам по себе создаётся почти во всех папках на маках, да ещё почему-то переставший отображаться даже со включенным отображением скрытых файлов. Вот у меня уже всё готово, а я понял что не доделал один банк. Но меня уже воротит от всех этих банков, так что пусть 49 и остаётся :–)
Я старался как можно больше логотипов скачать в формате SVG, чтобы при масштабировании они смотрелись лучше, но некоторые удалось найти только в PNG. Все логотипы в исходном размере и формате лежат в папке «src/banks-logos», в папку «dist/banks-logos» были скопированы все SVG логотипы без изменений, а также все SVG и PNG были преобразованы в PNG и обрезаны до 600×200. В общем в папке «dist/banks-logos» есть логотип для каждого банка в формате PNG, а для некоторых ещё и в SVG. Вы можете сами порезать логотипы вызовом команды npm run build-banks-logos и передать в неё настройки, подробнее в документации.
Форма получается особенно красивой, если логотип белый, потому что тогда можно форму покрасить в яркие цвета. По-этому, когда это было возможно я редактировал логотип и перекрашивал его в белый цвет. А для Всероссийского Банка Развития Регионов пришлось вообще самому отрисовывать логотип, потому что в интернет я так и не нашёл их логотипа в более или менее потребном виде.
Все логотипы типов есть и в SVG и в PNG. Типы есть следующие: Visa, MasterCard, American Express, Diners Club, Discover, JCB, UnionPay, Maestro или МИР. Для каждого типа есть логотип в трёх стилях: белый, чёрный и цветной. Первые 8 логотипов я позаимствовал у Стюарта Колвиля, логотип платёжной системы МИР у Евгения Катышева, а к общему стилю этот же логотип привёл самостоятельно.
У CardInfo существует настройка «brandLogoPolicy», которая определяет стиль логотип типа. Два самых крутых значения для неё это «auto» и «mono». Про остальные в документации.
auto
Работает так, что если логотип банка чёрный/белый/цветной, то и логотип типа будет чёрным/белым/цветным. Выглядит эффектно, форма становится живой, и всё на ней сочетается.
mono
Если фон светлый, то логотип типа будет чёрным, если фон тёмный, то логотип будет белым.
С CardInfo можно делать классные формы для приёма банковских карт. Я старался сделать этот плагин гибким, удобным, легковесным, надёжным и полезным, и думаю, что у меня получилось. Надеюсь вы будете использовать это плагин с удовольствием, а конверсии на ваших страницах оплаты вырастут. Если удовольствие от использования плагина начнёт зашкаливать, можете меня поблагодарить на специальной странице для выражения благодарностей Сергею Дмитриеву :–)
- Интересно услышать ваше мнение о плагине и пожелания к дальнейшему развитию
- Если кто-то станет смотреть код, и захочет как-то прокомментировать, буду рад услышать критику
- Я впервые писал тесты, и тут особенно было бы интересно получить обратную связь
- Я собираюсь добавить банки других стран и начать продавать плагин через CodeCanyon или что-то подобное. Вот только я совсем не могу понять, могу ли я вообще продавать его? Меня смущает то, что в плагине используются логотипы банков, которые мне не принадлежат, и логотипы типов, которые преимущественно нарисовал Стюарт и распространяет под лицензией MPL 2.0.
Источник
В предыдущих своих опусах я описывал один из способов правильного использования кредитных карт. В этой статье, я постараюсь разъяснить читателю некоторые особенности проведения операций по картам, как кредитным так и дебетовым. Особо, правда, углубляться я не планирую, но некоторые «особо интересные» вопросы постараюсь разъяснить.
Итак. Стандартный алгоритм работы любой карты выглядит так:
1. Где-то в магазине или в банкомате, может быть на страничке сайта в интернете или еще каким-то образом вы совершаете операцию. В этот момент происходит то, что с точки зрения МПС называется авторизацией. Фактически операция авторизации это проверка действительности карты, проверка ее владельца, проверка доступности необходимого количества средств на карте и временная блокировка этих средств. Сами деньги еще никуда не уходят. Лежат себе скромненько на банковском счете, хотя, в случае наличия блокировки — указанная сумма может быть заблокирована на балансе карты.
Рассмотрим чуть подробнее. Проверка действительности карты и ее владельца осуществляется многими способами, например введением пин-кода при онлайн авторизации, связью с банком и проверкой подписи, звонком в банк, проверкой кода 3DS при операциях в интернет и так далее. Способов много и не все они «онлайн» есть и «оффлайновые», к примеру авторизация по технологии бесконтактных платежей может производится только по данным карты, без связи с банком. В ряде случаев, при небольших суммах авторизация может вообще не производится, терминал фиксирует авторизационную информацию карты и не связываясь с банком дает «добро» на операцию. Это связано еще и с тем, что карты оборудованные чипом и модулем бесконтактных платежей могут содержать в себе как модуль оффлайн проверки PIN, так и хранить на себе сумму доступных средств клиента.
Проверка доступности суммы тоже используется далеко не всегда. Некоторые компании могут провести операцию и без проверки. Часто это происходит в ситуациях когда онлайн проверка доступности суммы просто невозможна. Например в самолете или при оплате картой на круизном судне. Еще интереснее вариант когда сумма для снятия заранее неизвестна. Это, к примеру, службы такси или компании предоставляющие в аренду автомобили. В этих случаях авторизация чаще всего проходит на какую-то минимальную сумму, вроде 1 рубля или на заранее оговоренную сумму блокировки, вроде 200 долларов. Но сумма списания по факту может быть совершенно любой.
Временная блокировка средств, если они вообще блокировались, стандартна для операций по которым сумма изначально известна. Стандартные операции покупки в магазине или снятия наличных в банкомате, операции перевода. Тут все просто, какая сумма пришла в запросе на авторизацию, такая и блокируется. Но что же дальше?
2. Дальше начинается подготовка к проведению транзакции. Банк-эквайер, то есть банк обслуживающий точку продаж или банкомат, или тот самый процессинг на интернет сайте получает документы о проведении операции. Этими документами могут быть как электронные выписки или выгрузки операционной выписки банкомата, так и бумажные документы. Есть и очень экзотические способы, например копии чеков для операций проведенных «голосом», но они чрезвычайно редки. Получив документы банк формирует файлы клиринга. Эти файлы представляют из себя электронную таблицу определенного формата передаваемую МПС посредством онлайн систем и подписанную электронной подписью банка. МПС в свою очередь формирует файлы клиринга для банков-эмитентов, то есть банков выпустивших вашу карту. Далее банк-эмитент, получает свой файл клиринга, часто по несколько раз в день и осуществляет операцию по переводу денежных средств в пользу банка-экваера. В этот момент деньги списываются со счета карты, происходит то, что называется транзакцией. Блокировка средств, если она была, заменяется на реальное списание.
Что там происходит дальше нас не сильно интересует, рассматривать отношения «точка продаж — бакн-эквайер» в рамках данной статьи я не хочу.
Хочу лишь обратить внимание на некоторые особенности поведения системы «авторизация-транзакция» и показать некоторые интересные моменты:
1. Авторизация не равна транзакции. При проведении авторизации деньги никуда не уходят, они остаются в банке. Если указана сумма авторизации то данная сумма уменьшает доступный баланс карты, но не счета. Фактически вы можете иметь дебетовый счет на котором лежит 100000 рублей и карту привязанную в этому счету на которой доступен 1 рубль. Просто у вас есть авторизация на 99999 рублей. При этом в нормальном банке, если на сумму остатка на счете начисляются проценты, то на всю сумму проценты продолжат начисляться, до тех пор пока авторизация не превратится в транзакцию и деньги не будут фактически перечислены.
2. Между авторизацией и транзакцией проходит некоторое время. Часто это 2-3-5 дней, но в ряде случаев из-за различных сбоев этот срок может составить и 5-6 месяцев, бывали случаи что транзакция происходила и через год. Что происходит в этом случае и чего следует опасаться? На часть вопросов я отвечу чуть ниже, но в целом вариантов развития событий два — карта все еще существует и в таком случае деньги будут списаны. Карты не существует и в таком случае банк отправит отказ от транзакции. В некоторых случаях при поступлении транзакции позже определенного срока, часто это 1 календарный месяц транзакцию можно оспорить. В этом случае я рекомендую вам 10 раз подумать прежде чем пытаться это сделать. И если вы все таки сделаете подобное опротестование не возмущаться отказу. Дело в том, что банки вынуждены работать в правовом поле не только МПС, но и тех стран на территории которых была проведена операция. А, к примеру, в РФ существует такая уголовная статья как «неосновательное обогащение» и банкам приходится это учитывать.
3. Срок действия авторизации у разных банков может составлять разное время. МПС рекомендует ставить время жизни авторизации «до 30 дней». Многие банки ставят 30, но существуют и такие банки, которые ставят срок жизни авторизации в 10 или даже 7 дней. В этом случае, если за 10 или 7 дней банком не было получено соответствующего файла клиринга средства на карте разблокируются и вы снова можете ими пользоваться. Нюанс тут только один, если через неделю файл клиринга будет получен банком, он однозначно его обработает и спишет средства. Что может получится в этом случае? Предположим у вас есть карта и на ней лежит 100000 рублей. Вы делаете операцию на 70000, через неделю банк не получает файл клиринга, средства разблокируются. Вы можете снова сделать операцию на 100000 и вы ее делаете. Еще через 3 дня банк получает оба файла клиринга. Баланс вашего счета -70000 рублей. У вас наказуемый комиссией в 500 рублей технический овердрафт и в соответствии с договором вы должны погасить долг в течении недели. Учитывайте эту особенность.
Хочется немного отвлечься на возможную разницу сумм, между авторизацией и транзакцией. Вариантов опять же — море. Ряд организаций способны проводить операции после предварительной авторизации на совершенно другие суммы, нежели блокированные. Как это происходит? В частности такси, авиакомпании, отели, службы аренды автомобилей способны списать с карты сумму не равную сумме авторизации. К примеру — вы садитесь в такси, протягиваете карту как источник платежа сразу а не после поездки. Часть такси сможет это сделать, авторизация пройдет на 1 доллар. Но после поездки счет изменится. И через 3-5 дней с вашей карты будет списано столько, сколько вы реально потратили, скажем долларов 50. Это опять же особенность, ее нужно учитывать и принимать во внимание. Ну а разница между суммой авторизации и суммой транзакции при валютных операциях это вообще всеобщая проблема. Авторизация проходит по курсу на день авторизации. Транзакция пройдет по курсу на день списания. При чем курсы могут быть разные. Первый, к примеру ЦБ РФ, а второй банка. А тут и курс подрос и разница процентов в 5%. Учитывайте и это. Если хотите платить рублевой картой за границей, сразу уточните как именно во вашей карте проходятся операции в других валютах. Не получите кучу проблем в дальнейшем и может быть откроете себе другую карту
Авиакомпании вообще творят полный «беспредел». Особенно это относится к покупке авиабилетов у авиакомпаний США. Там авторизация может пройти на одну сумму, к примеру 1000 долларов, а списаний по факту может быть 3, две по 478 долларов и одна на 44. Честное слово! Сам так покупал
Но вернемся к тому как нам эту особенность использовать для себя?
Предположим у вас есть карта с которой вы можете в расчетном периоде с 10 по 10 каждого месяца бесплатно снять в банкоматах 150 тыщ рублей. И в этом расчетном периоде вы уже сняли 150 тыщ. На улице 8-тое число. Нам нужно еще 100 тысяч. Ждать 10? Можно и не ждать. Если ваш банк оперирует с датами транзакций, а не с датами авторизаций, Можно почти спокойно снять деньги и 8-го. Вероятность того, что в банке они будут списаны не раньше 10-го очень велика. Хотя это риск. Ваш риск, банк может среагировать уж очень быстро, за день. И от бесплатности не останется ничего. Учитывайте этот момент.
Еще интереснее если у вас кредитка. Кредитка до 55 дней льготного периода. Хотите 57? Все просто, покупаете 8-го. Операция обрабатывается 11, но выписка-то была сформирована 10 и эта операция в нее не вошла. По факту — войдет в следующую выписку, вот вам и 57 дней льготного периода. Как-то так
Источник
- 08/22/2017
- Чтение занимает 3 мин
В этой статье
Важно!
Dynamics 365 for Finance and Operations стало специализированным приложением, с помощью которого вы можете управлять определенными бизнес-функциями. Дополнительные сведения об этих изменениях см. в разделе Руководство по лицензированию Dynamics 365.
Эта статья содержит обзор авторизации кредитной карты в Microsoft Dynamics 365 Finance. Она включает информацию о том, как настроить службу платежей, добавить кредитную карту в заказ на продажу и аннулировать авторизацию.
Настройка службы оплаты по кредитной карточке
Для использования кредитных карточек вы должны настроить и активировать службу оплаты на странице «Службы платежей». Служба платежей действует как мост между вашим юридическим лицом и банком, который обрабатывает платежи по кредитной карточке клиента. Вы должны работать с поставщиком кредитных карточек, который указан в поле «Соединитель платежей» и настроить учетную запись у этого поставщика. Вы должны после этого настроить другие параметры на странице «Службы платежей», настроить типы кредитной карт для American Express, Discover, MasterCard и Discover на странице «Типы кредитных карт» и активировать поставщика как поставщика по умолчанию. Вы должны также выполнить следующие шаги для того, чтобы завершить вашу установку:
- На странице «Параметры модуля расчетов с клиентами» определите параметры для использования авторизаций кредитной карты.
- На странице «Условия оплаты» настройте условия платежа для кредитных карт. В поле «Вид платежа» выберите «Кредитная карта».
- На странице «Кредитные карты клиента» введите сведения о кредитной карте для клиентов.
Добавление новой кредитной карты
Вы можете создать новые записи кредитной карточки на странице «Клиенты» путем использования пунктов «Клиент», «Настройка», «Кредитная карта». Вы можете также создать записи кредитной карты, когда вы вводите заказы на продажу на странице «Заказ на продажу», путем использования пунктов «Управление», «Клиент», «Кредитная карта», «Регистрация».
Добавление кредитной карточки к заказу на продажу
Вы можете добавить кредитную карточку к заказу на продажу путем выбора кредитной карточки в функции поиска кредитной карточки на экспресс-вкладке «Цена и скидки» на странице «Заказ на продажу». Чтобы начать процесс авторизации на панели действия на вкладке «Управление» выберите «Кредитная карточка» и «Авторизовать».
Авторизация кредитной карты
Когда кредитная карта авторизуется, проверяется номер карты и имя ее владельца и подтверждается доступное сальдо по кредиту. Также возможна необязательная проверка контрольного кода карты и адреса владельца карты. Доступное клиенту кредитовое сальдо затем уменьшается на сумму, указанную в накладной. Служба платежей отправляет сведения о подтверждении или отклонении кредитной карты. Когда выставляется накладная по заказу на продажу, на кредитную карту возлагается (на ней блокируется) расход на сумму накладной.
Контрольный код карты
Вы можете запросить контрольный код карты, иногда называемый кодом безопасности карты. Для карты American Express это четырехзначное число. Для карт Discover, MasterCard и Visa это трехзначное число.
Проверка адреса
Сведения о проверке адреса всегда отправляются поставщику платежных услуг. Вы можете решить, какой объем информации необходим для принятия проводки. Обязательно проверьте у вашего поставщика, принимает ли он эту информацию. Ниже приведены варианты для проверки адреса:
- Всегда принимать проводки. Принимать проводку независимо от результатов проверки адреса.
- Держатель счета. Сравнить имя владельца карты, указанное в проводке, со сведениями компании, выпустившей кредитную карту.
- Адрес выставления счета. Сравнить имя владельца карты и адрес выставления счета, указанные в проводке, со сведениями компании, выпустившей кредитную карту.
- Почтовый индекс выставления счетов. Сравнить имя владельца карты, адрес выставления счета и почтовый индекс, указанные в проводке, со сведениями компании, выпустившей кредитную карту.
Поддержка данных
Для каждого поддерживаемого типа кредитной карты можно указать уровень поддержки данных. Этот уровень определяет, какой объем информации о проводке передается службе платежей. Обязательно проверьте у вашего поставщика, может ли он предоставить эту информацию. Ниже приведены варианты для уровня поддержки данных:
- Уровень 1. Передача даты проводки, суммы проводки и описания.
- Уровень 2. Передача данных уровня 1, а также адреса отгрузки, адреса продавца и сведений о налогах.
- Уровень 3. Передача всех информации уровня 2 плюс сведений о строке заказа.
Частичные платежи
Если вы отгружаете часть заказа, регистрируется сумма частичного заказа и авторизация, проведенная для суммы целого заказа, закрывается. Затем производится новая авторизация для оставшейся суммы неотгруженного заказа.
Аннулирование авторизации
Чтобы аннулировать авторизацию кредитной карты, вы можете изменить метод платежа на другой метод, который не имеет типа кредитной карточки.
Источник