Кастомная форма оплаты c подключением CloudPayments
Кастомная форма для ввода карточных данных, интегрированная с CloudPayments
Реализована через cкрипт Checkout c получением криптограммы для оплаты через API CloudPayments
В корне репозитория 2 папки:
- javascript_version: написано на чистом JS
- typescript_version: аналог на TypeScript
Форма реализована с использованием:
- для масок полей ввода использована imaskjs
- валидация полей ввода на чистом JS/TS
- рендеринг формы оплаты(DOM-дерева) происходит через JS/TS
- реализовано распознование типа платежной системы при введении номера карты (VISA, Mastercard, JCB, American Express, МИР, Maestro)
Валидация
Номер карты: от 15 (для карт AMEX) до 19 цифр.Месяц: 2 цифры- значение не более 12 и не равно 0
- при вводе 1 цифры (если это не 0) и потери фокуса с инпута - автоматически значение преобразуется в '0' + 'введенное значение'
- если значение
годаравно текущему году, то значениемесяцаменьше текущего месяца - невалидно
Год: последние 2 цифры года- значение не меньше текущего года
CVV: 3 цифры- можно изменять видимость СVV-кода
При невалидных знаечниях границы инпута окрашиваются красным цветом.
Перейти в одну из папок в корне репозитория (javascript_version или typescript_version)
Для установки зависимостей, выполните команду:
$ npm iЧтобы запустить сервер для разработки, выполните команду:
npm run devЧтобы выполнить Production сборку, выполните команду:
npm run buildРендеринг DOM-дерева, подключение стилей, а также небходимых скриптов (для работы с CloudPayments) происходит полностью через JS/TS.
При Production сборки появится папка dist, содержащая единый js-bundle, который можно подключить к любой странице и сгенерировать форму оплаты в нужном месте:
- для этого на странице должен быть
HTMLElementcid:paymentContainer, куда необходимо встроить форму оплаты.