Условия приёма:
- Важно: всё собираться через Webpack (включая картинки и стили) и выкладываться на Github Pages через Appveyor.
- e2e-тестированиеж
- unit-testing.
Задача: сделать виджет, позволяющий вводить номер карты (можете в качестве общего развития почитать про PCI DSS).
Общий вид виджета должен выглядеть следующим образом:
Скриншот взят с сайта http://www.validcreditcardnumber.com.
Вам нужно провести исследовательскую работу и выяснить - на базе чего определяется, какой платёжной системе принадлежит определённая карта (не забудьте про "Мир").
Алгоритм Lunha
Используйте следующий алгоритм для проверки валидности номера карты.
Изображения для карт необходимо найти самостоятельно (помните, про авторские права и недопустимость нелегального использования).
- нужна логика проверки номера карты;
- выяснения принадлежности определённой платёжной системе.
- нужны авто-тесты на функции проверки номера карты и принадлежности определённой платёжной системе.
В качестве источника номеров карт используйте сервис FreeFormatter. \
Через Puppeteer и проверьте взаимодействие для двух различных вариантов:
- Ввод валидного номера карты
- Ввод невалидного номера краты
Удостоверьтесь, что всё работает при прогоне тестов в Appveyor (не забудьте про headless-mode).
2-Мир
3- American Express, JCB International, Diners Club
____30,36,38-Diners Club
____31,35-JCB International
____34,37-American Express
4- VISA
5- MasterCard, Maestro
____50,56,57,58-Maestro
____51,52,53,54,55-MasterCard
6- Maestro, China UnionPay, Discover
____60-Discover
____62 - China UnionPay
____63, 67 - Maestro
7-УЭК
Первые 6 цифр - это БИН ( Банковский Идентификационный Номер ) выпустившего карту банка.
А это сервис, позволяющий по БИН узнать название банка
Код рабочий на "github-pages". Не чистил от логов.