Stripe Laravel:Api 键必须是字符串

Posted

技术标签:

【中文标题】Stripe Laravel:Api 键必须是字符串【英文标题】:Stripe Laravel : Api key must be a string 【发布时间】:2022-01-19 10:55:50 【问题描述】:

我的应用是用 laravel 8、laravel Mix 6.0.39、vue js 2.6 和 vuex 3.0.1 构建的 我使用收银员支付模块 所以在支付组件中我有这个代码来初始化支付方式:

 let apikey = process.env.MIX_STRIPE_KEY
 this.stripe = await loadStripe(apikey)
 const elements = this.stripe.elements()
...

.env 文件:

STRIPE_SECRET=sk_test_.....

STRIPE_WEBHOOK_SECRET =we_....

MIX_STRIPE_KEY ="$STRIPE_KEY"

但我在已安装的付款方式中出现以下错误: IntegrationError: Missing value for Stripe(): apiKey should be a string.

我尝试在日志中显示变量process.env.MIX_STRIPE_KEY,我有undefined,但它在.envfile 中初始化 您有解决此问题的想法吗?

【问题讨论】:

等待你如何使用像process.env这样的服务器端javascript代码?您提到了 Laravel 8(php;服务器端)和 Vue 2.6(js;客户端) [coderedirect.com/questions/26662/…@Flame 看看 "$STRIPE_KEY" 到底是什么?看起来像某种变量? 【参考方案1】:

您为您的MIX_STRIPE_KEY 使用了STRIPE_KEY 值,但您是否真的在您的.env 中定义了STRIPE_KEY 的值? 我看到STRIPE_SECRETWEBHOOK_SECRET,您还需要STRIPE_PUBLIC(或STRIPE_KEY 在您的情况下)密钥。您可以在 Stripe 仪表板中找到公钥,就在您找到秘密的地方。

所以它应该是这样的:

STRIPE_SECRET=sk_test_.....
STRIPE_KEY=pk_test_.....
STRIPE_WEBHOOK_SECRET =we_....
MIX_STRIPE_KEY ="$STRIPE_KEY"

另外,更改.env后不要忘记重新启动本地服务器

【讨论】:

以上是关于Stripe Laravel:Api 键必须是字符串的主要内容,如果未能解决你的问题,请参考以下文章

带有 Stripe 的 Laravel 收银员:发票号

如何使用 Stripe 的 JavaScript API 验证优惠券?

$config 必须是字符串或数组

laravel 请求返回消息键翻译

Laravel:AppServiceProvider 注册 API 密钥?

Stripe API - 基于元数据的搜索