【发布时间】:2022-12-13 06:39:46
【问题描述】:
我的问题是 Stripe 的元数据对象有 500 个字符的限制。我有一个有效的结帐流程,但我唯一的限制是我的购物车的字符数限制。我的 cartItems 对象有我想为每个购物车项目包含的附加信息和客户注释。话虽如此,元数据限制很快达到 500 个字符。我读过另一篇文章 here,在我的应用程序中实现了 websockets,这样我就可以在监听 stripes 事件后创建订单。我该怎么做?还有其他解决方法吗?
let endpointSecret;
endpointSecret =
"whsec_bd73383ed0fcf9cfb27bd4929af341605ad32577dfd8825e1143425b846bb3c3";
router.post("/webhook", (request, response) => {
const sig = request.headers["stripe-signature"];
let data;
let eventType;
if (endpointSecret) {
let event;
try {
event = stripe.webhooks.constructEvent(
request.rawBody,
sig,
endpointSecret
); //@JA - Had to modify this to take the rawBody since this is what was needed.
} catch (err) {
response.status(400).send(`Webhook Error: ${err.message}`);
return;
}
data = event.data.object;
eventType = event.type;
} else {
data = request.body.data.object;
eventType = request.body.type;
}
// Handle the event
if (eventType === "checkout.session.completed") {
stripe.customers
.retrieve(data.customer)
.then((customer) => {
console.log("customer:", customer);
console.log("data:", data);
createOrder(customer, data);
})
.catch((err) => console.log(err.message));
}
【问题讨论】:
标签: javascript node.js stripe-payments mern