我正在尝试在我的项目中使用条带库,在设置它时,我在控制台中遇到一些错误和警告
我添加了这2行代码
import { loadStripe } from "@stripe/stripe-js"; const stripePromise = loadStripe(process.env.stripe_public_key);
控制台中的错误和警告是这样的:
v3:1 您可以通过 HTTP 测试 Stripe.js 集成。但是,实时 Stripe.js 集成必须使用 HTTPS。 发布 https://m.stripe.com/6 net::ERR_BLOCKED_BY_CLIENT
这正常吗?我还没有尝试任何东西,因为我也是 nextjs 和 stripe 的新手
对于未来看到此内容的任何人:
这可能与您的广告拦截有冲突: 用户nmaier解释在这里
这可能会有所帮助,因为它将 api 密钥公开给前端。它不安全,但可以解决问题。
process.env.NEXT_PUBLIC_STRIPE_PUBLIC_KEY
v3:1 You may test your Stripe.js integration over HTTP. However, live Stripe.js integrations must use HTTPS.
只是通过非 HTTPS 连接使用 Stripe 功能的警告,让您知道使用真实数据的 Stripe 操作需要 HTTPS。您可以通过 HTTP 运行测试,创建订阅、创建客户、附加付款方式等。
对于其他关于
process.env.stripe_api_key
在浏览器中暴露你的秘密的评论,我不得不不同意。使用环境变量,如 const mykey = process.env.MY_API_KEY;没有加载到浏览器中..我很确定..
但是,您需要确保配置您的 .env 文件,而不是将其上传到任何地方,因为它包含您放置在那里的键/变量的所有字符串值,通过更新您的 .gitignore 文件。
示例.gitignore:
#local env files
.env
#secrets
/secrets