Stripe создает несколько карточек для одного и того же клиента

Я новичок в Stripe. Реализую систему оплаты карточками с использованием Stripe в .NET.

Мой код такой:

var options = new SessionCreateOptions
{
  PaymentMethodTypes = new List<string> { "card", },
  LineItems = new List<SessionLineItemOptions> {
    new SessionLineItemOptions {
      PriceData = new SessionLineItemPriceDataOptions {
        UnitAmount = productPrice,      // in cents
        Currency = currency,
        ProductData = new SessionLineItemPriceDataProductDataOptions {
          Name = productName
        },
      },
      Quantity = 1,
    },
  },
  Mode = "payment",
  PaymentIntentData = new SessionPaymentIntentDataOptions
  {
    ReceiptEmail = customerEmail,
    Description = productName
  },
  SuccessUrl = domain + "/Home/PaymentSuccess?session_id={CHECKOUT_SESSION_ID}",
  CancelUrl = domain + "/Home/PaymentCancel",
  Customer = customerId // From database
};

var service = new SessionService();
Session session = service.Create(options);
jsonToReturn = Json(new { id = session.Id });

Как вы можете видеть выше, я передаю CustomerId, который я сохранил в БД.

Проблема в том, что при каждом платеже клиент вводит одну и ту же карту 4242 4242 4242 4242 с одинаковым сроком действия 12/20 и CVV 123, но Stripe создает несколько карт для одного и того же клиента на панели управления.

введите описание изображения здесь

Кроме того, могу ли я передать идентификатор способа оплаты (идентификатор карты, сохраненный в Stripe для прошлой проверки), чтобы клиенту не нужно было вводить данные карты и он мог напрямую выбрать карту, которая использовалась для оплаты в прошлом?


person SimpleGuy    schedule 17.10.2020    source источник


Ответы (1)


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

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

Теперь Stripe Checkout пока не позволяет вам предварительно заполнить или предварительно выбрать существующую карту. Это означает, что на данный момент у вас нет контроля над тем, как сохраняются карты и нужно ли повторно использовать ту, которая использовалась ранее. Идея состоит в том, что карта сохраняется, чтобы вы могли на своей странице оплаты позволить клиенту прийти и заказать дополнительные продукты или, например, взимать с них плату на регулярной основе. Если вы этого не сделаете, лучший вариант - отсоединить PaymentMethods, который больше не будет использоваться в будущем.

person koopajah    schedule 18.10.2020