有效的可发布密钥集,但没有获得有效的可发布密钥集

Kic*_*ski 5 ruby-on-rails stripe-payments

我正在尝试从Stripe网站上制作Stripe Checkout示例

https://stripe.com/docs/checkout/rails

但是,当我尝试付款时,却收到此错误消息

您没有设置有效的可发布密钥。用您的可发布密钥调用Stripe.setPublishableKey()。有关更多信息,请参见https://stripe.com/docs/stripe.js

在我的JavaScript控制台中,错误消息

https://checkout.stripe.com/api/bootstrap?key=&locale=zh-CN加载资源失败:服务器响应状态为400(错误请求)

在我的控制台中错误消息

在2016-10-19 17:29:24 +0000在10.240.1.15处启动GET“ /”不能从10.240.1.15渲染控制台!允许的网络:127.0.0.1,:: 1、127.0.0.0 / 127.255.255.255由ChargesController#new以HTML格式处理布局/应用程序中的charges / new.html.erb渲染(0.5ms)在53ms内完成200 OK(查看:52.6) ms | ActiveRecord:0.0ms)

当我检查我的html源代码strip-key meta标签没有任何内容吗?

条带样本使用他们自己的秘密和可发布密钥,但是我使用我的。

请,如果需要更多信息,请询问,以便我发表。

application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Workspace</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag  'https://js.stripe.com/v2/' %> 
  <%= csrf_meta_tags %>
  <%= tag :meta, :name=> 'stripe-key', :content => ENV["STRIPE_PUBLIC_KEY"] %>
</head>
<body>

<%= yield %>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Charges.html.erb

  <head>
  </head>
  <body>
    <%= yield %>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

stripe.js

$(document).ready(function() {
    Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'));        
});
Run Code Online (Sandbox Code Playgroud)

stripe.rb

Rails.configuration.stripe = {
  :publishable_key => ENV['PUBLISHABLE_KEY'],
  :secret_key      => ENV['SECRET_KEY']
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]
Run Code Online (Sandbox Code Playgroud)

小智 2

我实际上在 new.html.erb 中添加了可发布密钥,如下所示:

<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
      Stripe.setPublishableKey('PUBLISHABLE_KEY');
      data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
      data-description="A month's subscription"
      data-amount="100"
      data-locale="auto">
</script>
Run Code Online (Sandbox Code Playgroud)