API 路由器不读取存储在 .env 文件中的条带 API 密钥



我创建了一个。env文件,并把我的条纹键放在那里。然后在后端API/router中,我只需要导入这个密钥就可以使用它了。

我做了一个checkout请求,但我仍然在console.dev选项卡中得到这个错误:

POST http://localhost:5000/api/checkout/payment 500 (Internal Server Error)

同样,在网络选项卡中,带有报头消息的支付响应说:

消息:"您没有提供API密钥。您需要在授权头中提供您的API密钥,使用承载认证(例如:'授权:持有者YOUR_SECRET_KEY'). ...">

经过这里和那里的一些检查,我找到了一个解决我的问题的工作,结结账成功通过,但我不能认为它是一个解决方案,因为条带私钥必须存储在。env文件中。如何在。env文件中存储条带私钥并使其可访问?

Stripe.js代码(导致我的问题):

const router = require("express").Router()
const stripe = require("stripe")(process.env.STRIPE_KEY)
router.post("/payment", (req, res) => {
stripe.charges.create(
{
source: req.body.tokenId,
amount: req.body.amount,
currency: "USD"
},
(stripeErr, stripeRes) => {
if (stripeErr) {
res.status(500).json(stripeErr);
} else {
res.status(200).json(stripeRes);
}
}
);
})
module.exports = router;

Stripe.js(我的工作代码):

const router = require("express").Router()
const KEY = "sk_test_51LJh5TCx0CP76PWrVKMBkQfuhm7tcgYZ2bhkx3yLApn3ugWiNEpd65V78uK3Z2nJzNSt2Gaga1bkFYZIAWoddJZ00n9quwkln" //i dont mind share this key public
const stripe = require("stripe")(KEY)
router.post("/payment", (req, res) => {
stripe.charges.create(
{
source: req.body.tokenId,
amount: req.body.amount,
currency: "TTD"
},
(stripeErr, stripeRes) => {
if (stripeErr) {
res.status(500).json(stripeErr);
} else {
res.status(200).json(stripeRes);
}
}
);
})
module.exports = router;

为了使用.env文件你需要dotenv

首先安装:npm i dotenv

然后在使用环境变量之前将此添加到代码中:

require('dotenv').config()

我也有同样的问题。我的解决方案是:

const dotenv = require("dotenv");
dotenv.config();

:

const stripe = require("stripe")(process.env.STRIPE_KEY)

And then works.

相关内容

  • 没有找到相关文章

最新更新