条带 - 取消订阅

时间:2014-01-30 11:43:49

标签: ruby-on-rails ruby-on-rails-4 stripe-payments

更新:问题是当创建新客户而不是客户ID时,Stripe会使用card_token进行响应。可能我做错了。

我在我的Rails应用程序上设置了Stripe,然后将其与Devise集成。它工作正常,因为它在我的Stripe帐户上创建了一个新客户,在我的Rails应用程序上创建了一个新用户。当注册发生时,我将Stripe令牌保存在我的用户表中,作为stripe_card_token(来自条带的响应)。

我希望用户能够取消订阅。

我使用“stripe-ruby”gem并看到gem中有一些方法可以取消订阅,例如“cancel_subscription”方法。但是我不确定我怎么称呼这种方法。

我检查了Stripe的API以取消订阅,例如:

customer = Stripe::Customer.retrieve({CUSTOMER_ID})
customer.subscriptions.retrieve({SUBSCRIPTION_ID}).delete()

但我没有客户的身份证明。我在创建客户时保存的唯一属性是Stripe响应的令牌发送。

在User.rb中,我使用此方法创建客户

  def create_a_customer
    token = self.stripe_card_token
    customer = Stripe::Customer.create(
      :card => token,
      :plan => 1,
      :email => self.email
      )         
  end

当我创建客户时,我将response.id保存为令牌:

  handleStripeResponse: (status, response) ->
if status == 200
  $('#user_stripe_card_token').val(response.id)
  $('#new_user')[0].submit()
else
  $('#stripe_error').text(response.error.message)
  $('#stripe_error').show()
  $('input[type=submit]').attr('disabled', false)

此response.id是卡的代币,而不是客户的ID ......

我对如何使用gem感到困惑,因为它没有提供任何示例,并且API询问客户ID,而我获得的ID是卡的令牌。我很确定我错过了什么。

非常感谢任何指导,帮助!

0 个答案:

没有答案