我正在使用无服务器lambda函数来运行Stripe付款。它在本地主机上运行良好,但是当我部署到netlify时它不起作用。我收到400错误。
我遵循了本教程,但是随后将charge.js更改为使用dotenv https://mitchgavan.com/react-serverless-shop/
在我的服务器功能中,我有以下内容……
require(‘dotenv’).config()
const stripe = require(‘stripe’)(process.env.STRIPE_SECRET_KEY);
我有一个带有SK的.env文件,并且在localhost上运行时可以工作。但是当我部署时它不起作用。
我已在Netlify的仪表板中添加了SK
STRIPE_SECRET_KEY sk_test_opK…sIKZ
但这对我不起作用,我在做什么错了?
答案 0 :(得分:0)
执行lambda函数时,很有可能不存在依赖项dotenv
,因为您没有将其打包到函数中。
使用Netlify的仪表板存储私钥时,您将没有.env
。这是个好消息,因为您不想将该密钥存储在存储库中。仅在您的情况下才需要进行本地开发。
require('dotenv').config()
,因为在这种情况下,在Netlify上不需要使用process.env.STRIPE_SECRET_KEY
,因为在函数执行时cross-env
将在Netlify上存在。someMethod(...)
)