【问题标题】:Uncaught ReferenceError: StripeCheckout is not defined in ERB未捕获的 ReferenceError:在 ERB 中未定义 StripeCheckout
【发布时间】:2016-10-03 02:29:51
【问题描述】:

我正在将条带集成到我的 RoR 应用程序中,当我尝试提交测试凭据时出现以下错误:

 Uncaught ReferenceError: StripeCheckout is not defined

这种行为特别奇怪,因为如果我只是刷新/重新加载页面并复制完全相同的步骤并提交相同的测试凭据,则不再有任何错误,并且应用程序按预期完美运行,因此付款成功。

我在这里很困惑。关于如何解决这个奇怪的错误的任何想法?谢谢!

app/views/pins/_details.html.erb

    <aside id="details-aside" class="col-sm-4">
        <!-- <a id="btn-buy" href="receipt.html" class="btn btn-success btn-lg btn-block"><b>I want this!</b></a> -->                 

      <% if @pin.user = current_user %>

          <%= form_tag charges_path, id: 'chargesForm' do %>
              <script src="https://checkout.stripe.com/checkout.js"></script>
              <%= hidden_field_tag 'stripeToken' %>
              <%= hidden_field_tag 'stripeEmail' %>  
              <button id="btn-buy" type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-heart"></span>   I want this!</button>

              <script>
                  var handler = StripeCheckout.configure({
                    key: '<%= Rails.configuration.stripe[:publishable_key] %>',
                    token: function(token, arg) {
                      document.getElementById("stripeToken").value = token.id;
                      document.getElementById("stripeEmail").value = token.email;
                      document.getElementById("chargesForm").submit();
                    }
                  });
                   document.getElementById('btn-buy').addEventListener('click', function(e) {
                    handler.open({
                      name: 'OMG! <%= @pin.manufacturer %>',
                      description: '<%= @pin.description %>',
                      amount: 1000
                  });
                  e.preventDefault();
                 })
              </script>
          <% end %>

      <% else %>

          <%= link_to 'I want this!', new_user_registration_path, class: "btn btn-success btn-lg btn-block" %>

      <% end %>

    <br><br/>

        <ul id="details-infobox" class="list-group">
          <li class="list-group-item active clearfix">DETAILS</li>
          <li class="list-group-item">
            <p><strong>Description:</strong>   <%= @pin.description %></p></li>
          <li class="list-group-item clearfix">
            <span class="pull-left content-qualifier"><b>Price:</b></span>
            <span class="pull-right"><%= @pin.model %></span>
          </li>
        </ul>
    </aside>

</section>

【问题讨论】:

  • 我已经提到要在布局的标题处添加链接
  • 如果问题再次发生,请尝试让我知道

标签: javascript ruby-on-rails ruby stripe-payments erb


【解决方案1】:

请添加以下链接查看文件:

<script src="https://checkout.stripe.com/checkout.js"></script>

请参阅参考资料:请参阅此处的文档:https://stripe.com/docs/checkout#integration-custom

如果还没有加载第二个选项:

<script type="text/javascript" src="https://js.stripe.com/v2/">

$(function(){

  Stripe.setPublishableKey('<%= Rails.configuration.stripe[:PUBLISHABLE_KEY] %>');

});

</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-23
    • 2016-11-03
    • 2011-01-05
    • 2016-01-02
    • 2013-10-06
    • 2016-12-17
    相关资源
    最近更新 更多