Руководство разработчика по приему онлайн-платежей с помощью Stripe

Stripe была основана еще в 2010 году, исходя из того, что прием онлайн-платежей не должен быть сложной задачей. В то время настройка и утверждение в качестве продавца на платежных платформах занимало от нескольких дней до нескольких недель. Платформам также мешали устаревшие технологии, неуклюжие API и плохая документация.

Перенесемся в сегодняшний день, и Stripe входит в число лучших продавцов онлайн-платежей из-за их стремления упростить процесс. За считанные минуты компания может создать учетную запись продавца и начать принимать платежи по кредитным картам благодаря отличной интеграции API и инструментам.

Давайте посмотрим, как мы можем включить обработку платежей в веб-приложение Java Spring.

Лучше всего то, что наше решение не потребует от нас хранения какой-либо информации о кредитной карте в нашей базе данных или даже передачи информации о кредитной карте на наш веб-сервер.

Создать полосатую учетную запись

Сначала мы создаем учетную запись на Stripe. Это займет несколько минут, после чего нас попросят активировать учетную запись, щелкнув ссылку в электронном письме с подтверждением.

Ключи API

Выберите API в меню навигации, чтобы проверить доступные ключи API. Аутентификация Stripe работает путем проверки секретного ключа в каждом запросе API. Мы будем использовать тестовый секретный ключ для тестирования внутреннего кода. Публикуемые ключи используются интерфейсным кодом, который мы также рассмотрим.

Добавить клиента

Чтобы обработать платеж, нам нужно создать клиента в Stripe.

Выберите Клиенты в боковом меню и нажмите кнопку «Создать». Введите адрес электронной почты и описание.

Каждому клиенту присваивается идентификатор после создания. Этот идентификатор однозначно идентифицирует клиента и будет использоваться нашим кодом для списания средств с его карты.

Идентификатор представляет собой буквенно-цифровую строку, начинающуюся с «cus_».

В нашем приложении этот шаг создания клиента будет частью обычного процесса регистрации учетной записи. Затем идентификатор клиента Stripe будет сохранен в нашей базе данных и связан с учетной записью приложения.

Позже мы увидим пример кода, демонстрирующий эту функциональность.

Добавить карту

Данные реальной кредитной карты нельзя использовать в тестовом режиме. Поэтому вместо этого мы будем использовать тестовый номер VISA со сроком действия в будущем и случайным номером CVC. Это будет принято Stripe как успешный платеж при использовании нашего тестового ключа API.

Выберите созданного нами клиента и нажмите кнопку Добавить карту на странице сведений о клиенте. Номера тестовых кредитных карт можно найти здесь

Полосатые элементы

В предыдущем разделе мы вручную создали карточку для клиента. В нашем приложении мы хотели бы, чтобы клиент заполнил форму способа оплаты.

Stripe предлагает интерфейсную библиотеку JavaScript под названием Stripe Elements, которая позволяет нам представить форму на нашем сайте, которая отправляет данные кредитной карты непосредственно в Stripe. Это устраняет любую информацию о кредитной карте, поступающую в наше веб-приложение.

Добавить Stripe Library в качестве зависимости проекта

Давайте перейдем к нашему проекту Java и добавим библиотеку Stripe в качестве зависимости проекта:

Мавен

Грейдл

Платежный интерфейс

Мы создадим интерфейс с именем PaymentService, содержащий 2 сигнатуры методов:

  • Метод createCustomer принимает объект User и возвращает строку, содержащую идентификатор клиента Stripe.
  • Метод chargeCreditCard принимает объект Order и ничего не возвращает.

Класс PaymentServiceImpl

Мы реализуем интерфейс с помощью класса с именем PaymentServiceImpl, который помечен как Spring Service (@Service).

Класс содержит реализации методов, которые мы объявили в интерфейсе.

Конструктор класса присваивает нашему ключу API значение Stripe.apiKey. Это используется библиотекой Stripe Java для автоматической отправки ключа в каждом запросе.

Одно важное примечание относительно платежей: Stripe требует, чтобы сумма была указана в центах.

Давайте протестируем наш метод createCustomer. Этот код появится как часть контроллера, который обрабатывает регистрацию новых пользователей.

Вот пример пользовательской таблицы в нашей базе данных:

id | stripe_id      | email             | password_hash 
-------------------------------------------------------- 
1  | cus_1C2345ABCD | [email protected]  | XXXXXXXXXXXXX 
2  | cus_9ABH45EFGH | [email protected]  | XXXXXXXXXXXXX 
3  | cus_0MX3W6JKLM | [email protected]  | XXXXXXXXXXXXX 
4  | cus_27GUMKWZZ8 | [email protected] | XXXXXXXXXXXXX 

Тестирование платежей

Давайте протестируем наш метод chargeCreditCard. Этот код появится в контроллере, который обрабатывает заказы на продукты или ежемесячные подписки.

Теперь взглянув на область «Платежи», мы видим, что платеж в размере 1,50 доллара США был успешно обработан.

Первоначально опубликовано на www.codebyamir.com 27 апреля 2017 г.