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

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

Установка полосы

Мы начнем с создания файла js, назовите его index.js. Установите Stripe, запустив:

npm i stripe

Создать экземпляр полосы

Внутри index.js мы создадим экземпляр Stripe с нашими тестовыми секретными ключами.

const stripe = require('stripe')('sk_test_key_here');

Сохранить способ оплаты

Далее мы напишем код для отправки запроса с данными карты в виде объекта.

const paymentMethod = await stripe.paymentMethods.create({
  type: 'card',
  card: {
    number: '4242424242424242',
    exp_month: 9,
    exp_year: 2022,
    cvc: '314',
  },
});
console.log(paymentMethod)

Протестируйте приложение, запустив его:

node index.js

Вы должны увидеть ответ со свойством «ID». Значение этого идентификатора является уникальным идентификатором для этого способа оплаты.

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

Прикрепить сохраненный способ оплаты к пользователю

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

Для этой функции вам потребуется указать идентификатор способа оплаты и идентификатор клиента.

const paymentMethod = await stripe.paymentMethods.attach(
  paymentId,
  {customer: customerId}
);

Вам нужно будет переписать свой код, чтобы передать эти идентификаторы в качестве параметров. Вот как бы я это сделал:

attachPaymentMethod = (customerID, paymentMethodID) => {
      return stripe.paymentMethods.attach(
             customerID,
             {customer: paymentMethodID}
);

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

attachPaymentMethod('customer-id-goes-here', 'pm-id-goes-here')

Спасибо за чтение и удачного кодирования!