Nih*_*_20 6 javascript stripe-payments next.js
我正在构建 Amazon 克隆,当我尝试将 stripe 与克隆集成时,出现以下错误。有人可以帮帮我吗?我指的是这个视频:https://www.youtube.com/watch ?v=4E0WOUYF-QI&t=4092s
错误片段:
错误 - StripeInvalidRequestError:您不能在此 API 版本中使用
line_items.amount、line_items.currency、line_items.name、line_items.description或 。line_items.images请使用line_items.price或line_items.price_data。请参阅 https://stripe.com/docs/ payments/ checkout/migration-prices 了解更多信息。
代码片段:
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);
export default async (req, res) => {
const { items, email } = req.body;
const transformedItems = items.map((item) => ({
description: item.description,
quantity: 1,
price_data: {
currency: "gbp",
unit_amount: item.price * 100,
product_data: {
name: item.title,
images: [item.image],
},
},
}));
const session = await stripe.checkout.sessions.create({
payment_method_types: ["card"],
shipping_rates: ["shr_1LkVMHSArY9HEMGlxjejfRWf"],
shipping_address_collection: {
allowed_countries: ["GB", "US", "CA"],
},
line_items: transformedItems,
mode: "payment",
success_url: `${process.env.HOST}/success`,
cancel_url: `${process.env.HOST}/checkout`,
metadata: {
email,
images: JSON.stringify(items.map((item) => item.image)),
},
});
res.status(200).json({ id: session.id });
};
Run Code Online (Sandbox Code Playgroud)
小智 5
这里的问题出在函数上transformedItems。您初始化 stripe 所用的 API 版本要求产品的描述(即item.description)位于product_data对象内部。
通过简单地将描述移动到所描述的对象内来重写您的函数将很简单:
const transformedItems = items.map((item) => ({
quantity: 1,
price_data: {
currency: "gbp",
unit_amount: item.price * 100,
product_data: {
name: item.title,
description: item.description, //description here
images: [item.image],
},
},
}));
Run Code Online (Sandbox Code Playgroud)
此信息显示在错误为您提供的文档链接中,但您可能错过了它。
| 归档时间: |
|
| 查看次数: |
3970 次 |
| 最近记录: |