在Web上实现Stripe:未捕获的ReferenceError:未定义StripeCheckout

时间:2015-03-14 20:51:17

标签: javascript jquery stripe-payments

我正在尝试在我的网络应用中实施Strip付款。但是,在使用示例代码时,我收到了js错误:

未捕获的ReferenceError:未定义StripeCheckout

代码是这样的:

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

<script>
  Stripe.setPublishableKey('pk_test_HnjFihOWwYTWnnsTLnZTmbgv');

  var handler = StripeCheckout.configure({
    key: 'pk_test_HnjFihOWwYTWnnsTLnZTmbgv',
    image: '/img/documentation/checkout/marketplace.png',
    token: function(token) {
      // Use the token to create the charge with a server-side script.
      // You can access the token ID with `token.id`
    }
  });

  $('#customButton').on('click', function(e) {
    // Open Checkout with further options
    handler.open({
      name: 'Demo Site',
      description: '2 widgets',
      amount: 2000
    });
    e.preventDefault();
  });

  // Close Checkout on page navigation
  $(window).on('popstate', function() {
    handler.close();
  });
</script>

知道我为什么会收到错误吗?谢谢。

2 个答案:

答案 0 :(得分:10)

StripeCheckout构建于Stripe之上。您需要包含定义StripeCheckout的js文件。

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

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

答案 1 :(得分:3)

只有在下载checkout.js文件并编译了javascript文件后才能执行可发布的关键行,因为我的项目可以正常工作

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

$(function(){

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

});

</script>

要测试此操作,请在浏览器中使用开发人员工具打开控制台,并在页面加载后,如果控制台在页面中返回对表单的引用,则粘贴$('#payment-form'),然后将其工作。

我把它放在我的应用程序的表单页面中,它解决了这个错误,当它包含在我的javascript文件中,甚至包含在on ready事件中它导致了与你经历的相同的错误