条带错误:"创建客户时,卡对象必须具有'number'的值"

Jel*_*Cat 8 ruby-on-rails stripe-payments

我正在使用Stripe的ruby gem来(尝试)执行两个步骤:

  1. 使用Stripe的"Checkout"表单收集卡片
  2. 使用表单提交中的重定向提供的令牌创建客户

后面这些步骤提出了一个Stripe::CardError信息是:

卡片对象必须具有"数字"的值

API文档描述了该过程:https://stripe.com/docs/tutorials/subscriptions#subscribing-a-customer-to-a-plan

我的代码(一个Rails控制器动作)

def receive_redirect
    customer = Stripe::Customer.create(
      plan: "stripe_plan_name",
      card: params[:stripeToken]
    )
end
Run Code Online (Sandbox Code Playgroud)

params [:stripeToken]看起来像这样:

{"id"=>"tok_1044TY4GgNdNSosPXdAmIZdt","livemode"=>"false","created"=>"1400620581","used"=>"false","object"=>"token","type"= >"card","card"=> {"id"=>"card_1044TY4GgNdNSosPuDSuygow","object"=>"card","last4"=>"9424","type"=>"发现","exp_month" >"9","exp_year"=>"2014","指纹"=>"Lz5ASwlmyseG0gYo","customer"=>"","country"=>"US","name"=>"manderson @ pinneyinsurance .com","address_line1"=>"","address_line2"=>"","address_city"=>"","address_state"=>"","address_zip"=>"","address_country"=>" "},"email"=>"<my_email> @ <my_host>"}

......你可以看到,他们没有给我一个号码,所以我该怎么办?

条纹1.8.8(红宝石宝石)
Rails 3.2.13
Ruby 1.9.3

Dha*_*iri 15

您应该设置的值card:只是令牌的ID而不是您现在正在传递的整个对象.像这样的东西(我的红宝石有点生锈):

card: params[:stripeToken][:id]
Run Code Online (Sandbox Code Playgroud)

您可以Customer.createStripe API文档中查看有效输入的示例.