我让我的应用程序在Stripe的测试模式下完美运行,但当我将切换开关切换到Stripe仪表板上的live
并更改了我{{1}上的stripe_publishable_key
和stripe_secret_key
时我一直收到错误:
Stripe Checkout无法与我们的付款处理器通信,因为 API密钥无效。请联系网站所有者或 support@stripe.com。
我甚至不确定在这里提供什么代码来帮助人们排除故障,因为一切都在测试模式下正常运行,但这是secrets.yml
的结构:
secrets.yml
我查看了this one等其他帖子,但这些步骤都没有解决问题。任何人都可以添加任何见解吗?
通过评论部分中的编辑,错误消失了,但这些控制台错误(以及永恒的风车)仍然存在:
答案 0 :(得分:1)
重新检查您的公钥,并确保您没有误将分号;
放在密钥末尾。
答案 1 :(得分:0)
花了一段时间调试才意识到我是这样设置键的:
export PUBLISHABLE_KEY="pk_test_1234567"
不起作用的
export PUBLISHABLE_KEY=pk_test_1234567
正常工作(不要用引号引起来) 无论出于什么原因,我都没有注意到我马上就这样做了。
答案 2 :(得分:0)
反转键,因为这是错误的:
stripe_secret_key: ENV['stripe_publishable_key']
在您的JavaScript中使用的秘密密钥,反转密钥,然后将可发布的密钥放入公共javascript 。
// sk_(test|live) = "Secret key"
stripe_publishable_key: 'sk_live_1234567890asdfg';
// pk_(test|live) = "Publishable key"
stripe_secret_key: 'pk_live_1234567890asdfg';
您的javascript(公开的,公开的)密钥中包含pk
(公开密钥)。
如果您在JavaScript中使用sk
(将它们取反),将无法使用。