我正在尝试在我的网络应用中实施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>
知道我为什么会收到错误吗?谢谢。
答案 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事件中它导致了与你经历的相同的错误