Единый заряд с полосой в рельсах
Я пытаюсь выяснить, как принимать кредитные карты, используя полосу в один заряд, который вводится в поле ввода формы.
Пример: user1 вошел в систему и создал сообщение, ввел $20 в поле и нажимает кнопку отправить. Пост создается и 20 долларов списывается на его карту. Пользователь2 делает то же самое, но кладет 45 долларов, вводит свою кредитную карту и отправляет форму.
Я сделал следующее сделано; - разработка устройства - роли - установка полосы и установка учетной записи
Я не нашел пример, который объяснял бы одну плату за полосу, все основано на подписке.
Я новичок в этом, поэтому я пытаюсь имитировать примеры подписки, но безуспешно.
1 ответ
Вот как я выполняю одну зарядку с использованием Stripe и драгоценного камня ActiveMerchant.
transaction = ActiveMerchant::Billing::StripeGateway.new(:login => STRIPE_SECRET_KEY)
paymentInfo = ActiveMerchant::Billing::CreditCard.new(
:number => "4242424242424242",
:month => "12",
:year => "2020",
:verification_value => "411")
purchaseOptions = {:billing_address => {
:name => "Customer Name",
:address1 => "Customer Address Line 1",
:city => "Customer City",
:state => "Customer State",
:zip => "Customer Zip Code"
}}
response = transaction.purchase((17.50 * 100).to_i, paymentInfo, purchaseOptions)
if response.success? then
logger.debug "charge successful"
end
Вам нужно использовать Stripe.js, чтобы получить токен, а затем передать эту строку токена вместо объекта кредитной карты.
В целях тестирования вы можете перейти по https://stripe.com/docs/stripe-js и получить токен из формы, как показано на следующем рисунке:
Как использовать его в консоли рельсов:
gateway = ActiveMerchant::Billing::StripeGateway.new(:login => STRIPE_SECRET_KEY)
gateway.purchase(1200, "tok_1E0CzPDdSOg3FLH0IFmWo1T2")