CardInfo.js
CardInfo.js позволяет по номеру карты получить логотип банка и типа, фирменные цвета и прочее. Используйте эти данные, чтобы верстать красивые формы для приёма банковских карт. В базе сейчас 50 самых популярных российских банков, позже будут добавлены банки и для других стран, тогда же будет переведна документация на английский язык.
Быстрый старт
Скачайте CardInfo.js, установите через bower bower install card-info
или npm npm install card-info
.
Подключите JS файл с плагином к странице:
<script src="/bower_components/card-info/dist/card-info.min.js"></script>
Теперь можете использовать класс CardInfo
в своём коде:
var cardInfo = new CardInfo('4377730000000000');
console.log('Название банка:', cardInfo.bankName);
// > Название банка: Тинькофф Банк
console.log('Логотип банка:', cardInfo.bankLogo);
// > Логотип банка: /bower_components/card-info/dist/banks-logos/ru-tinkoff.svg
Конструктор
new CardInfo(number)
new CardInfo(number, options)
number
номер карты, число или строка, в строке допустимы пробелы.options
объект с настройками.
Экземпляр
Если по первым 6 цифрам в номере карты не удалось определить данные о банке, поля bankAlias, bankName, bankNameEn, bankCountry, bankUrl, bankLogoPng, bankLogoSvg, bankLogo, bankLogoStyle, backgroundColor, backgroundColors, backgroundLightness, textColor, backgroundGradient будут иметь значение по умолчанию.
Если по первым цифрам в номере карты не удалось определить данные о типе, поля brandAlias, brandName, brandLogoPng, brandLogoSvg, brandLogo, codeName, codeLength, numberLengths, numberGaps будут иметь значение по умолчанию.
bankAlias
по умолчаниюnull
Короткое название банка на английском, все буквы маленькие, без пробелов. Если банк не определён, значениеnull
.bankName
по умолчаниюnull
Название банка на языке той страны, в которой работает банк.bankName
по умолчаниюnull
Название банка на английском.bankCountry
по умолчаниюnull
Код страны в которой работает этот банк.'ru'
— Россия.bankUrl
по умолчаниюnull
Ссылка на сайт банка.bankLogo
по умолчаниюnull
Путь к логотипу банка. Для каждого банка в папкеdist/banks-logos
есть логотип в формате PNG, для некоторых ещё и в SVG. Имя файла определяется свойством экземпляраbankAlias
. Путь к файлу определяется свойством настроекbanksLogosPath
. Расширение логотипа определяется свойтсвом настроекpreferredExt
. Пример: для банка «Тинькоф» значение будет'/bower_components/card-info/dist/banks-logos/ru-tinkoff.svg'
.bankLogoPng
по умолчаниюnull
Путь к логотипу банка в формате PNG.bankLogoSvg
по умолчаниюnull
Путь к логотипу банка в формате SVG, если для этого банка существует логотип в формате SVG.bankLogoStyle
по умолчаниюnull
Если логотип преимущественно чёрный, то"black"
, если белый, то"white"
, если цветной, то"colored"
.backgroundColor
по умолчанию'#eeeeee'
Цвет ассоциирующийся с банком. Если банк не определён, значение будет'#eeeeee'
.backgroundColors
по умолчанию['#eeeeee', '#dddddd']
Массив цветов ассоциирующихся с банком. Если банк не определён, значение будет['#eeeeee', '#dddddd']
.backgroundLightness
по умолчанию'light'
Если цвет фона светлый, то значением будет строка'light'
, иначе'dark'
.backgroundGradient
по умолчаниюlinear-gradient(135deg, #eeeeee, #dddddd)
Содержит строку с CSS значением свойстваbackground
, установив которое, вы получите градиент из цветов указанны в полеbackgroundColors
. Угол можно указать в свойстве настроекgradientDegrees
.textColor
по умолчанию'#000'
Цвет текста, который хорошо будет виден на фоне указанном в свойствеbackgroundColor
.brandAlias
по умолчаниюnull
Короткое название типа на английском, все буквы маленькие, без пробелов.brandName
по умолчаниюnull
Полное название типа.brandLogo
по умолчаниюnull
Путь к логотипу типа. Для каждого типа в папкеdist/brands-logos
есть логотип в формате PNG и SVG и в трёх стилях: чёрном, белом и цветном. Имя файла определяется свойством экземпляраbrandAlias
. Путь к файлу определяется свойством настроекbrandsLogosPath
. Расширение логотипа определяется свойтсвом настроекpreferredExt
. Стиль логотипа определяется свойтсвом настроекbrandLogoPolicy
. Пример: для типа «Visa» значение будет'/bower_components/card-info/dist/brands-logos/visa-colored.svg'
.brandLogoPng
по умолчаниюnull
Путь к логотипу типа в формате PNG.brandLogoSvg
по умолчаниюnull
Путь к логотипу типа в формате SVG.codeName
по умолчаниюnull
Название кода на обратной стороне карты (CVC/CID/CVV/CVN).codeLength
по умолчаниюnull
Ожидаемая длина кода безопасности. Обычно 3, но для карт American Express 4.numberMask
по умолчаниюnull
Маска для номера карты данного типа. Обычно маска 0000 0000 0000 0000, но некоторые типы карт имеют отличную от 16 символов длину номера карты, и пробелы расставляются в других местах. Например для карт American Express маска будет 0000 000000 00000. Символы в маске могут быть изменены путем изменения настроекmaskDigitSymbol
иmaskDelimiterSymbol
. Используйте свойствоnumberMask
для наложения маски на поле ввода номера карты.numberGaps
по умолчанию[4, 8, 12]
Массив с числами, определяющими положение пробелов при создании маски.numberLengths
по умолчанию[16]
Массив с числами, определяющими допустимое количество символов в номере карты.numberNice
Номер карты приведённый к красивому виду. Маска определяется свойствомnumberMask
. Пример: 4377730000000000 → 4377 7300 0000 0000, 437773 → 4377 73.number
Номер карты в виде строки с удалёнными пробелами. Если в переданном номере карты были какие либо символы кроме цифр и пробелов, будет пустой строкой.numberSource
Номер карты переданный при создании экземпляра.options
Настройки использованные при создании экземпляра.
Настройки
banksLogosPath
по умолчанию'/bower_components/card-info/dist/banks-logos/'
.
Путь к файлам с логотипами банков.brandsLogosPath
по умолчанию'/bower_components/card-info/dist/brands-logos/'
.
Путь к файлам с логотипами типов.brandLogoPolicy
по умолчанию'auto'
.
Эта настройка определяет стиль логотипа типа. Доступные значения: 'black', 'white', 'colored', 'auto', 'mono'.'colored'
Логотип типа будет цветным'black'
Логотип типа будет чёрным'white'
Логотип типа будет белым'mono'
Логотип типа будет белым, если фон (backgroundLightness
) тёмный ('dark'
) Логотип типа будет чёрным, если фон (backgroundLightness
) светлый ('light'
)'auto'
Логотип типа будет цветным, если стиль логотипа банка (bankLogoStyle
) цветной ('colored'
) Логотип типа будет белым, если стиль логотипа банка (bankLogoStyle
) белый ('white'
) Логотип типа будет чёрным, если стиль логотипа банка (bankLogoStyle
) чёрный ('black'
) Логотип типа будет цветным, если банк не определён
preferredExt
по умолчанию'svg'
.
Предпочтительное расширение для логотипов банков и типов. Значением может быть'png'
или'svg'
.maskDigitSymbol
по умолчанию'0'
Символ обозначающий цифру в маске номера карты, указанной в свойстве экземпляраnumberMask
.maskDelimiterSymbol
по умолчанию' '
Символ обозначающий разделитель в маске номера карты, указанной в свойстве экземпляраnumberMask
.gradientDegrees
по умолчанию135
Градус под которым идёт градиент указанный в свойстве экземпляраbackgroundGradient
.
Статические методы
CardInfo.setDefaultOptions(options)
Единожды установив настройки по умолчанию они будут применены при каждом создании экземпляра.
Статические свойства
CardInfo.banks
Объект с данными по каждому банку. Ключи — короткие название банков (bankAlias).
Способы подключения
- Подключить основной файл. В таком случае вы загрузите всю базу данных банков.
<script src="/bower_components/card-info/dist/card-info.min.js"></script>
- Подключить только файл с логикой, без базы данных, а базу данных для вашей страны отдельно. Базы банков отдельно для каждой страны находятся в папке «dist/banks-and-prefixes».
<script src="/bower_components/card-info/dist/card-info.core.min.js"></script>
<script src="/bower_components/card-info/dist/banks-and-prefixes/ru.min.js"></script>
- Подключить в качестве модуля в своём коде
const CardInfo = require('card-info')
// или
import CardInfo from 'card-info'
Нарезка логотипов
Все логотипы банков в исходном размере хрнятся в папке src/banks-logos
. Если вы устанавливали CardInfo.js чере npm вам будет доступна команда npm run build-banks-logos
. После её вызова, все логотипы из папки src/banks-logos
будут преображены в формат PNG, уменьшены до 600 пикселей по ширине и 200 по высоте, скопированы в папку dist/banks-logos
. Чтобы изменить настройки нарезки логотипов, передайте настройки при вызове команды вот так npm run build-banks-logos -- -w 1000 -h 300
-w | --width
по умолчанию600
Ширина в пикселях до которой будет уменьшено/увеличено изображение-h | --height
по умолчанию200
Высота в пикселях до которой будет уменьшено/увеличено изображение-n | --enlargement
по умолчанию отключено
Если изображение меньше по ширине или высоте, чем переданные в настрйоках значения, то картинка не будет увеличина. Однако, если передать эту опцию, то картинка будет увеличина принудительно.-e | --embed
по умолчанию отключено
Изображение уменьшается/увеличивается пропорционально своим исходным размером. Так к примеру картинка 600×200, при нарезке с опциями-w 200 -h 100
станет 200×50. Однако, если передать эту опцию, то картинка станет 200×100, а пустое пространство займёт прозрачная область.
Вся информация выше также распространяется на логотипы типов. Команда: npm run build-brands-logos
. Исходная папка: src/brands-logos
. Конечная папка: dist/brands-logos
. По умолчанию высота 60 пикселей, а ширина не указана.
Работоспособность
Код проверн и работает во всех браузерах включая Internet Explorer 6. Чтобы прогнать тесты выполните команду npm test
или откройте в браузере файл test/browser/main.html
.
Особая благодарность
Спасибо BIN Codes за актуальную базу префиксов для всех банков
Спасибо Stuart Colville за логотипы типов
Спасибо Евгению Катышеву за логотип платёжной системы МИР
Нравится плагин?
Можете поблагодарить меня словами или деньгами на этой странице.