我正在尝试集成 Stripe 结账。为此,我正在关注此文档:
https://stripe.com/docs/recipes/subscription-signup#creating-the-signup-form-using-checkout
所以我粘贴了 <script>
在我的表单中标记,例如:
<form action="/create_subscription.php" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_lrpNHu3jIKBoBo2ZLZ8dzzBh"
data-image="images/marketplace.png"
data-name="Emma's Farm CSA"
data-description="Subscription for 1 weekly box"
data-amount="2000"
data-label="Sign Me Up!">
</script>
</form>
文件说,当用户点击“注册”按钮时,它应该打开一个弹出窗口询问卡的详细信息,但它并没有直接提交表单。
我很确定 Stripe key 与此无关,但我仍然使用了正确的 key 。此外,控制台上没有任何 Javascript 错误。
我几乎搜索了互联网上的所有内容,但还是一无所获。
PS:我使用的是 http 而不是 https,不确定这是否是问题所在。
编辑:
我认为问题是在 HTTP 而不是 HTTPS 上运行,因为它在此处提到:
https://stripe.com/docs/checkout#does-checkout-require-https
但现在我不认为这可能是问题,因为它在 HTTP 上运行良好:
http://demo.ilovephp.net/stripe/stripe_pay_checkout_demo.php
编辑:
我发现了问题:Laravel 的默认 app.js 与 Stripe 的 checkout.js 有问题。没有 app.js 它工作正常。
https://laracasts.com/discuss/channels/laravel/issue-with-stripe-api-js-and-laravel-js?page=1
我仍然没有找到好的解决方案。
谢谢
最佳答案
在 resources/views/layouts/app.blade.php 中移动 < script src="{{ asset('js/app.js') }}"></script>
到页面的头部而不是在末尾。
关于javascript - Stripe 结帐按钮不会打开结帐窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45262502/