我正在将条带加载到我的付款页面中,如下所示:
<script src="https://js.stripe.com/v3/"></script>
这在我的本地测试环境中完美运行,但在生产中,出现以下控制台错误:
Uncaught Error: It looks like Stripe.js was not loaded correctly
at new e (controller-84824401a25a5595fc578f767b4d5c27.js:1)
at controller-84824401a25a5595fc578f767b4d5c27.js:1
at Object.bnjt (controller-84824401a25a5595fc578f767b4d5c27.js:1)
at t (shared-d3604a85e14ef273096e09821a0e4c2a.js:1)
at Object.3 (controller-84824401a25a5595fc578f767b4d5c27.js:1)
at t (shared-d3604a85e14ef273096e09821a0e4c2a.js:1)
at window.webpackJsonp (shared-d3604a85e14ef273096e09821a0e4c2a.js:1)
at controller-84824401a25a5595fc578f767b4d5c27.js:1
我无法弄清楚可能导致错误的原因。我在生产中使用HTTPS,可以看到JS文件源下载成功。有小费吗?
解决了@NathanCasebolt的建议。 SO mods删除了他的原始答案:
“对我来说,解决这个错误就像拼写检查我的变量一样简单。在我的后端服务器代码中,我的一个变量被错误地大写。由于拼写错误的变量是检索我的可发布密钥的函数的一部分,因此从服务器返回的密钥为null。反过来,这会中断Stripe对象的创建并抛出此错误。如果我是你,我会检查以确保(1)您前端的可发布密钥与仪表板中的可发布密钥匹配,以及(2)您没有做任何可能破坏为Stripe提供此密钥的操作。 ”
StackOverflow模块认为这没有回答问题,需要太多澄清。所以,澄清一下,问题在于我:
var stripe = Stripe('{PUBLISHABLE_KEY}');
我设置了从服务器检索可发布的密钥,以便在测试密钥和实时密钥之间切换时更灵活。由于我的一个服务器变量是错误的,我正在为Stripe提供一个坏密钥(没有密钥,真的),这就是抛出错误的原因。这就是为什么我建议您检查用于创建Stripe对象的可发布密钥,以确保您用于创建对象的那个密钥存在,并且它与Stripe仪表板上的可发布密钥相匹配“。
在我的情况下,这正是我做错了:在初始化Stripe时提供了一个空的可发布键。最终一个非常简单的错误加剧了Stripe的钝错误消息。