稍后使用activemerchant保存付款

时间:2014-12-29 23:51:49

标签: ruby sinatra stripe-payments activemerchant braintree

Active Merchant似乎是付款的好宝石。但是,我需要能够保存客户的付款信息,然后在以后(即发货时而不是下订单时)向卡收费。

BraintreeStripe都可以通过向我提供客户ID来保存到我的数据库来实现此目的。然后,我会在某个日期使用此ID向客户收费。

我浏览了Active Merchant Stripe code,其purchase()有评论:

   # To create a charge on a customer, call
   #   purchase(money, nil, { :customer => id, ... })

这似乎有办法获得客户ID。

如何让Active Merchant创建客户对象并返回Stripe和Braintree的客户ID?对于支持此付款方式的所有网关,activemerchant是否支持此功能?

1 个答案:

答案 0 :(得分:3)

我在Braintree工作。如果您有更多问题,可以随时get in touch with our support team

在Braintree保险库中创建或更新客户/信用卡的各种方法在回复for example上返回:customer_vault_id

Response.new(result.success?, message_from_result(result),
  {
    :braintree_customer => (
      customer_hash(result.customer, :include_credit_cards) if result.success?
    ),
    :customer_vault_id => (
      result.customer.id if result.success?
    ),
    :credit_card_token => (
      result.customer.credit_cards[0].token if result.success?
    )
  },
  :authorization => (result.customer.id if result.success?)
)

您可以存储该ID,并在以后调用purchase时使用它。