【问题标题】:Error when redirection to stripe checkout重定向到条带结帐时出错
【发布时间】:2021-04-28 09:19:25
【问题描述】:

我正在构建一个电子商务网站,其中包含 next.js 和条带结帐功能。当我要结帐时,我一直遇到这个错误。我也在使用use-shopping-cart 包,我开始认为它可能会导致来自stripe-checkout 的以下响应错误

  "error": {
    "message": "Invalid API Key provided: undefined",
    "type": "invalid_request_error"
  }
}

超级令人困惑的是结帐会话以及购物车和付款意图(我知道这是真的,因为我可以通过条纹仪表板验证此信息)。目前,条带仪表​​板也未指示有错误。

有没有人遇到过这种情况,有没有人知道如何解决它?

提前致谢!

【问题讨论】:

  • 正如错误所说,您没有为要进行条带化的请求提供任何 api 密钥。不知道你是如何打电话的,就无法知道你的问题出在哪里
  • 哦,当然。所以我做了一些挖掘,并认为错误来自密钥,结果证明是导致问题的公钥。我有这个 getStripe util 函数:` import { Stripe, loadStripe } from '@stripe/stripe-js' let stripePromise: Promise const getStripe = () => { if (!stripePromise) { stripePromise = loadStripe(${process.env.STRIPE_PUBLIC_KEY!} as string) } return stripePromise } export default getStripe ` 公钥变量未定义,所以当它传递给我的购物车提供商时,我得到了错误。
  • 对这种糟糕的格式感到抱歉。奇怪的是,当我控制台记录公钥时,它会登录我的终端,但在我的客户端控制台中未定义。我目前正在使用 Next.js 和 .env.local 文件。

标签: javascript reactjs stripe-payments next.js vercel


【解决方案1】:

解决方案非常简单。我只需要在我的环境变量前面加上NEXT_PUBLIC_。

【讨论】:

  • 正确,这暴露了客户端的环境变量!很高兴它对你有用。
猜你喜欢
  • 1970-01-01
  • 2015-01-30
  • 2020-04-11
  • 2017-07-29
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 2016-05-09
相关资源
最近更新 更多