Сохранение идентификатора карты локально - Stripe - PullRequest
0 голосов
/ 12 декабря 2018

В настоящее время код выглядит следующим образом.

hash = {
      customer: customer.id,
      amount: 50,
      description: "Purchased book #{@book.title}",
      currency: 'usd',
    }

    charge = Stripe::Charge.create(hash)

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

Теперь рассмотрим, что у пользователя две карты в полосеи пользователь хочет произвести оплату второй картой (которая не является картой по умолчанию)

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

Так что я планирую сохранить card_id, возвращенный из полосы, и сохранить его вместе с customer_id в локальной базе данных.

Так что я могу изменить код следующим образом.

hash = {
      customer: customer.id,
      amount: 50,
      description: "Purchased book #{@book.title}",
      currency: 'usd',
      card: 'Card_xxxxxxxxxx'  #specify which card to use for payment  
    }

    charge = Stripe::Charge.create(hash)

Таким образом, вопросы:

Является ли хорошей практикой сохранение card_id, возвращенного из полосы, для хранения в локальной базе данных?

Если нет,какой должен быть идеальный подход к этой ситуации?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Да, это совершенно нормально.Таким образом, вы можете ссылаться на эту карту без необходимости соответствовать требованиям PCI .Вы должны быть в состоянии использовать это, с customer_id позже для других сборов, подписки и т. П.

0 голосов
/ 12 декабря 2018

Думаю, вам стоит взглянуть на атрибут source заряда.Это может быть карта или токен и т. Д.

https://stripe.com/docs/api/charges/create

...