Stripe - обрабатывать несколько платежей с одного IP - PullRequest
0 голосов
/ 04 июня 2018

У нас есть простая форма, которая позволяет нашим клиентам оплачивать наши услуги.Мы используем библиотеку JS "StripeCheckout", и все работает как положено.

Некоторые из наших клиентов предоставляют нам информацию о кредитной карте и хотят, чтобы мы производили платежи от их имени.Это, очевидно, проблема безопасности, но наши клиенты доверяют нам :) Это проблема в полосе, поскольку она не позволяет нескольким платежам происходить с одного и того же IP (что понятно)

Хотелось бы узнать, если полосапредоставляет другой API для этой возможности (то есть обрабатывает несколько клиентских платежей из нашего операционного центра) с одним и тем же IP-адресом?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Лучшее решение для этого - использование Stripe Idempotent request.У нас была похожая проблема при оплате.Платеж пользователя обрабатывался несколько раз.

Идемпотентный ключ гарантирует, что только после того, как успешный платеж может быть обработан для каждого идемпотентного ключа, может быть предпринято несколько неудачных попыток.см. здесь

и в официальном документе .

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

require "stripe"
Stripe.api_key = "sk_test_BQokikJOvBiI2HlWgH4olfQ2"

Stripe::Charge.create({
  :amount => 2000,
  :currency => "usd",
  :source => "tok_visa", # obtained with Stripe.js
  :description => "Charge for joseph.davis@example.com"
}, {
  :idempotency_key => "FVnElesDto9UXlOr"
})

idempotency_key должен быть уникальным для каждого объекта начисления.

0 голосов
/ 04 июня 2018

Если у вас уже есть номера карт (или клиенты готовы предоставить их вам), вы можете создать объект карты в Stripe через их API, используя https://stripe.com/docs/api#create_card, а затем, когда у вас есть источник платежа (который можетбыть созданной вами картой) вы можете использовать https://stripe.com/docs/api#create_charge для создания объекта Charge.

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

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

...