Implementing Stripe on Web: Uncaught ReferenceError: StripeCheckout is not defined

Implementing Stripe on Web: Uncaught ReferenceError: StripeCheckout is not defined

我正在尝试在我的网络应用程序中实施 Stripe 支付。但是,在使用示例代码时,我收到以下 javascript 错误:

Uncaught ReferenceError: StripeCheckout is not defined

代码是这样的:

    <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>

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

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

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

在此处查看文档: https://stripe.com/docs/checkout#integration-custom

仅当 checkout.js 文件已下载且您的 javascript 文件已编译后,才应执行可发布的关键行,对于我的项目,此方法有效

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

$(function(){

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

});

</script>

要对此进行测试,请在浏览器中使用开发人员工具打开一个控制台,并在页面加载后粘贴 $('#payment-form') 如果控制台 returns 对您页面中的表单的引用然后它的工作。

我已将它放在我的应用程序的表单页面中,它解决了这个错误,当它包含在我的 javascript 文件中时,甚至包含在 on ready 事件中,它导致了与您遇到的相同的错误