一旦 checkout.session.completed 事件完成,我正在尝试控制台记录 Stripe customerID。但我收到此 400 状态代码错误“无法从标头中提取时间戳和签名”。我似乎无法找到将 Stripe 客户 ID 写入控制台日志的解决方案。
任何帮助或指针表示赞赏。这是我的代码:
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
exports.handler = async ({ body, headers }) => {
try {
const stripeEvent = stripe.webhooks.constructEvent(
body,
headers['stripe-signature'],
process.env.STRIPE_WEBHOOK_SECRET
);
if (stripeEvent.type === 'checkout.session.completed') {
const eventObject = stripeEvent.data.object;
const customerID = eventObject.customer;
console.log(customerID);
console.log(headers);
}
return {
statusCode: 200,
body: JSON.stringify(customerID),
};
} catch (err) {
console.log(`Stripe webhook failed with ${err}`);
return {
statusCode: 400,
body: `Webhook Error: ${err.message}`,
};
}
};
当我按照注释中的建议控制台记录标题时,请在终端中获取此信息:
我现在可以在终端中看到客户 ID (cus_JOqbW95ulF3zx0),但我需要将其记录为 customerID 吗?当终端说 customerID 未定义时。