【问题标题】:Using Stripe in a CoffeeScript file在 CoffeeScript 文件中使用 Stripe
【发布时间】:2016-09-02 04:10:16
【问题描述】:

我有一个名为 subscribers.coffee.erb 的 CoffeeScript 文件

$(document).ready -> 
  stripe = require('stripe')('<%= Rails.configuration.stripe[:publishable_key]%>')

  $('.pricing-get-started').prop("disabled", true)
  $('.verify-coupon').click ->
    # use stripe api to verify that the coupon is valid

  return
return

第二行似乎不起作用。我什至尝试复制并通过我的可发布密钥,但这也不起作用。我认为以下问题是:

  1. 找不到require('stripe')
  2. Rails 无法从 coffeescript 文件中找到可发布的密钥

注意:

我有一个工作密钥。我可以从我的订阅者/new.html.haml 注册订阅和所有内容。

我正在使用gem 'stripe'

任何建议将不胜感激!

【问题讨论】:

  • @muistooshort 我编辑了那个问题并修复了它。那不在我的实际代码中(当我在这里的编辑器中移动一些东西时必须被删除)。无论如何,对于为什么这不起作用,您还有其他建议吗?还有其他方法可以访问可发布密钥或 stripe.js 吗?
  • require 不工作还是require 找不到 Stripe?
  • @muistooshort 我不确定。我正在使用gem stripe,从外观上看,stripe.js 文件似乎应该在资产管道中可用。这就是为什么我认为require 可能正在工作并且rails 找到publishable_key 时出现问题
  • 有任何错误吗?您确定 Rails.configuration.stripe[:publishable_key] 在编译资产时是正确的吗?

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


【解决方案1】:

您正在调用 stripe = require('stripe'),但 require 未在 javascript 中默认定义。只要在调用此脚本之前您的应用程序中包含stripe.js,就不需要require('stripe') 行。

加载 Stripe.js 后,您可以通过 Stripe.setPublishableKey('pk_test_key_here'); 设置您的可发布密钥。如果您使用环境变量,请确保在您的环境中定义了 Rails.configuration.stripe[:publishable_key]

最后,您应该知道,资产清单(application.jsapplication.css)中包含的资产文件中的任何嵌入 ruby​​ 不会在每个请求上被调用,而只会在您运行 rake assets:precompile 时被调用.因此,Rails.configuration.stripe[:publishable_key] 的计算结果可能并不总是您期望的值。

【讨论】:

    猜你喜欢
    • 2014-02-22
    • 1970-01-01
    • 2013-06-25
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2011-10-28
    • 2013-07-26
    相关资源
    最近更新 更多