更新:问题是当创建新客户而不是客户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是卡的令牌。我很确定我错过了什么。
非常感谢任何指导,帮助!