Active Merchant似乎是付款的好宝石。但是,我需要能够保存客户的付款信息,然后在以后(即发货时而不是下订单时)向卡收费。
Braintree和Stripe都可以通过向我提供客户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是否支持此功能?
答案 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
时使用它。