Я пытаюсь использовать Stripe для платежей в приложении rails. Я помню, что во время одной из наших стажировок мы использовали гем active merchant
, чтобы абстрагировать процесс с помощью шлюзов. Хотя на стажировке мы использовали Authorize.net. Мы не использовали Stripe. Для этого конкретного приложения я хотел бы использовать Stripe и ActiveMerchant вместе.
Просматривая документацию на странице GitHub Active Merchant, я обнаружил, что могу подключиться к Stripe с помощью StripeGateway, предоставляемого гемом Active Merchant. Вот как я это сделал:
ActiveMerchant::Billing::Base.mode = :test
# Create a new credit card object
credit_card = ActiveMerchant::Billing::CreditCard.new(
:number => '4242424242424242',
:month => '8',
:year => '2022',
:first_name => 'Tobias',
:last_name => 'Luetke',
:verification_value => '123'
)
if credit_card.valid?
gateway = ActiveMerchant::Billing::StripeGateway.new(
login: Rails.application.credentials.development[:stripe_private_key]
)
# Authorize for $10 dollars (1000 cents)
response = gateway.authorize(1000, credit_card)
if response.success?
# Capture the money
gateway.capture(1000, response.authorization)
else
raise StandardError, response.message
end
end
Однако это проблема. Всякий раз, когда я запускаю это, я получаю странную ошибку:
StandardError (Sending credit card numbers directly to the Stripe API is generally unsafe. We suggest you use test tokens that map to the test card you are using, see https://stripe.com/docs/testing.)
Я понимаю, что это проблема безопасности, но я не понимаю, как это сделать с помощью Active Merchant. Я пытался использовать документацию Stripe для ruby на рельсах, но форма была очень простой. Он имел только номер кредитной карты, данные об истечении срока действия и запись CVC, а также электронную почту. Но мне нужен также платежный адрес. Это мое обоснование использования Active Merchant. Он очень прост в использовании и абстрагирует много пуха, в то же время он может создавать собственные формы. Но я получаю эту ошибку здесь с Stripe, и я не знаю, как ее исправить.
Любая помощь приветствуется!