我正在使用条带在rails 4应用程序上创建客户帐户。
基本上,我知道我的coffeescript代码捕获cc信息(下面)与Stripe成功通信,因为正在为卡创建令牌(我可以在创建后将其打印到屏幕上)。
同样,我的模型中有一个方法可以在Stripe中创建客户对象。它连接并以条带形式显示,当我尝试对信用卡信息进行硬编码(即通过具有预设参数的块)时,卡信息以条带形式显示。
但是,我无法弄清楚如何将卡片令牌从我的coffeescript代码传递给我的模型(或控制器,或者我真正可以实际使用它的任何地方)。如果有人可以帮助我,或者指出一些关于它的文档那就太棒了!
这是我的coffeescript代码,其中令牌保存为“#subscription_stripe_card_token”:
handleStripeResponse: (status, response) ->
if status == 200
$('#subscription_stripe_card_token').val(response.id)
$('#stripe_error').text(response.id)
$('#new_subscription')[0].submit()
else
$('#stripe_error').text(response.error.message)
$('input[type=submit]').attr('disabled', false)
这是我的模型,我正在尝试(不成功)访问它(在save_with_payment方法中,调用Stripe :: Customer.create,我正在尝试传递卡信息):
class Subscription
include Mongoid::Document
belongs_to :user
field :plan, type: String
field :stripe_customer_token, type: String
attr_accessor :stripe_card_token
def save_with_payment(plan, email, name)
if valid?
customer = Stripe::Customer.create(description: name, email: email, plan: plan, card: stripe_card_token)
write_attribute(:stripe_customer_token, customer.id)
save!
end
rescue Stripe::InvalidRequestError => e
logger.error "Stripe error while creating customer: #{e.message}"
errors.add :base, "There was a problem with your credit card."
false
end
同样,其他一切都有效。目前我假设它传递了一个“零”值,我无法弄清楚如何访问它。
答案 0 :(得分:0)
你做不到。 CoffeeScript(编译为JavaScript)在用户的浏览器中运行。 Rails在您的服务器上运行。他们无法访问彼此的状态。
它们之间可以进行的唯一通信形式是客户端发起的HTTP请求。
您需要通过AJAX将条带令牌发送到服务器。