【问题标题】:Single Charge with Stripe in Rails在 Rails 中使用 Stripe 进行单次充电
【发布时间】:2012-12-21 19:44:58
【问题描述】:

我试图弄清楚如何在表单输入字段中输入的单笔费用中使用条纹接受信用卡。

示例:user1 登录并创建帖子,在字段中输入 20 美元并单击提交。帖子被创建,并从他的卡中收取 20 美元。用户 2 也这样做,但投入 45 美元并输入他的信用卡并提交表单。

我已经完成了以下工作; - 设计设置 - 角色 - 条纹 gem 安装和帐户设置

我还没有找到一个例子来解释一次条带化收费,一切都是基于订阅的。

我是新手,所以我试图模仿订阅示例,但没有成功。

【问题讨论】:

  • 我将 Stripe 与 ActiveMerchant gem - github.com/Shopify/active_merchant 一起使用,并使用它进行单次收费。如果您认为有帮助,我可以发布我所做的答案。
  • 是的,但这是基于订阅的。我需要允许注册用户在输入文本字段中输入他自己的金额,然后收集他的信用卡数据并将其全部发送到条带,同时在数据库中创建条目。
  • 另一种可行的方法是,如果我能以某种方式将文本输入值分配给 :price 之类的东西,并能够在视图和控制器中使用它。那也行,知道怎么做吗?
  • 这行得通吗?在视图中,我将有 并且在条带收费的控制器中创建有数量 => 参数 [:price].... 不应该工作吗?因此,当提交时,它会运行创建和收费。

标签: ruby-on-rails ruby forms


【解决方案1】:

这是我使用 Stripe 和 ActiveMerchant gem 执行单次收费的方式。

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

【讨论】:

  • 嗨@Jeff Steil,谢谢你的回答,我也做了同样的事情,但我得到了这个错误:params: error: type: invalid_request_error 消息:将信用卡号直接发送到 Stripe API 通常是不安全的.我们建议您使用映射到您正在使用的测试卡的测试令牌,请参阅stripe.com/docs/testing。如果您对此有任何想法。谢谢
【解决方案2】:

您需要使用 Stripe.js 来获取令牌,然后传递该令牌字符串而不是信用卡对象。

出于测试目的,您可以转到https://stripe.com/docs/stripe-js 并从如下图所示的表单中获取令牌:

如何在 Rails 控制台中使用它:

gateway = ActiveMerchant::Billing::StripeGateway.new(:login => STRIPE_SECRET_KEY)
gateway.purchase(1200, "tok_1E0CzPDdSOg3FLH0IFmWo1T2")

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 2014-06-06
    • 2021-11-28
    • 1970-01-01
    • 2016-11-17
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多