Статьи

Платежи онлайн с React и Square

Создание пользовательской формы оплаты с использованием React и Square

Есть много способов принимать платежи онлайн. Разве не было бы неплохо реализовать одну форму, которая могла бы принимать столько способов оплаты, сколько мы хотим? Давайте посмотрим на реализацию пользовательской формы оплаты с использованием Square и React . Эта форма позволит нам принимать кредитные карты через Интернет и предоставлять поддержку Apple Pay, Google Pay и Masterpass в единой форме оплаты.

Требования

Наша окончательная (платежная) форма:

Окончательная форма оплаты

Окончательная форма оплаты

Реакция и Квадратная форма оплаты

Если вы знакомы с React, то вы привыкли передавать propsи управлять своим компонентом через него state. Давайте сосредоточимся на том, как настроить базовую настройку и запустить ее с помощью платежной формы Square, управляемой компонентом React.

Мы также продемонстрируем, как динамически загружать скрипт формы оплаты Square, если вы хотите просто вставить компонент формы оплаты на страницу. Динамическая загрузка скрипта актуальна только в том случае, если вы не хотите, чтобы скрипт загружался только на странице оформления заказа (или там, где вы хотите принять платеж).


Вам также может понравиться:
Как изучить React.js, Часть 1: Дорожная карта React для современных веб-разработчиков .

Если вы не знакомы с формой оплаты Square, отправляйтесь в документы и ознакомьтесь. Есть несколько шаблонов, объяснений и руководств по настройке формы с использованием базового HTML, CSS и JavaScript.

На базовом уровне форма оплаты напрямую фиксирует данные карты вашего клиента непосредственно на серверах Square с помощью <iframe>. Форма оплаты облегчает генерацию этих <iframe>элементов и предоставляет API для создания одноразового номера ( одноразового токена) для последующего обращения к этим деталям (и все это без знания какой-либо конфиденциальной информации!).

Основная проблема, с которой вы сталкиваетесь, когда эти <iframe>элементы заменяют другие элементы в DOM, заключается в том, что React обычно любит отвечать за все взаимодействия с DOM. Это требует дополнительной настройки наших компонентов, чтобы быть уверенным, что мы отображаем все правильно (в правильном порядке) и правильно обрабатываем различные события, генерируемые скриптом формы платежа Square.

Динамически загружать квадратный скрипт формы оплаты

Наш базовый компонент — это то, где мы на самом деле управляем динамической загрузкой:

<script src=”https://js.squareup.com/v2/paymentform”></script>

в <head>DOM, чтобы вызвать рендеринг нашего дочернего компонента. Дочерний компонент будет фактически отвечать за сборку, форматирование и управление нашей формой оплаты. Это сделано для того, чтобы скрипт был загружен, чтобы мы могли передать SqPaymentFormобъект нашему дочернему компоненту.


JavaScript