javascript - 带节点的条带引发错误 400:“无法读取未定义的属性‘会话’”
问题描述
我正在尝试将条带集成到我组织的应用程序中,但是,按照条带自己的文档,使用 nodeJS 进行集成的方法是这样做:
https://stripe.com/docs/billing/subscriptions/checkout#create-session
我几乎尝试了所有方法,但服务器总是抛出 404 错误并显示以下消息:“无法读取未定义的属性‘会话’”
问题是,当我在后端控制条带对象时,我发现实际上条带没有“结帐”属性,但条带文档说它确实有它,这让我认为我一定做错了什么.
这是我的“去结帐”按钮的前端代码
const createCheckoutSession = (priceId:any) => {
return axios.post("/create-checkout-session", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
priceId: priceId
})
}).then(function(result) {
return result.data();
});
};
const handleClick = async (event:any) => {
// Get Stripe.js instance
const stripe = await stripePromise;
// Call your backend to create the Checkout Session
//const response = await fetch('/create-checkout-session', { method: 'POST' });
createCheckoutSession('price_1J7UmZFYFs5GcbAXvPronXSX').then(function(data) {
// Call Stripe.js method to redirect to the new Checkout page
stripe
.redirectToCheckout({
sessionId: data.sessionId
})
.then(()=>{console.log('handleResult')});
})
};
这是我的 server.js 代码
//STRIPE CODE
const stripeKey = 'sk_test_51J7UfrFYFs5GcbAX45lXy6w2TV1hPqvUbqu3hdB4QRAXFR3QYmTgcNKXcVG7tL9vwaanjdYWGvkfiQ6Bd41dK4V7004yMs3Cbh'
const stripe = Stripe(stripeKey);
app.post('/create-checkout-session', async (req, res) => {
//console.log("--------STRIPE----------", stripe);
const { priceId } = req.body;
try {
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
payment_method_types: ['card'],
line_items: [
{
price: priceId,
// For metered billing, do not pass quantity
quantity: 1,
},
],
// {CHECKOUT_SESSION_ID} is a string literal; do not change it!
// the actual Session ID is returned in the query parameter when your customer
// is redirected to the success page.
success_url: 'https://localhost:3000/success?session_id={CHECKOUT_SESSION_ID}',
cancel_url: 'https://localhost:3000/canceled',
});
res.send({
sessionId: session.id,
});
} catch (e) {
res.status(400);
return res.send({
error: {
message: e.message,
}
});
}
});
解决方案
好吧,伙计们,所以我想通了,我的包中已经安装了条带,但是每次我尝试更新它时,它都会说我使用的是最新版本。
无论如何,我卸载然后重新安装了所有与条纹相关的东西npm i <package>
,它突然工作得很好
推荐阅读
- django - Django:创建点击触发器
- python - 为什么我无法抓取页面?
- sql - 从描述中提取特定单词,但不将整个查询限制为该结果?
- bash - Bash for 循环不会多次执行一个句子
- reactjs - 带有 react/redux 的模态状态
- crystal-reports-2013 - Crystal Reports 2013 在每个组的开头禁止空白页
- php - 如何重定向保留 URL 参数的目录?
- java - 为什么我的项目中仍在下载和初始化 EhCache
- caching - 缓存、分支预测器和 TLB 维护操作
- sql - 如何计算 db2 中两个日期列之间的天数?如何更正此查询中的天数差异?