Checkout Session 的 consent 属性记录会话是否收集了客户的促销同意书。
当客户完成购买时,跟踪哪些客户同意了促销内容。为此,您可以创建或更新一个现有的 Webhook 处理程序。侦听 checkout.session.completed 事件,检查 consent.promotions 状态,然后为同意的客户保存电子邮件地址。
const endpointSecret = 'whsec_...';
const app = require('express')();
const bodyParser = require('body-parser');
const recordPromotionalEmailConsent = (email, promoConsent) => {
console.log("Recording promotional email consent", email, promoConsent);
}
app.post('/webhook', bodyParser.raw({type: 'application/json'}), (request, response) => {
const payload = request.body;
const sig = request.headers['stripe-signature'];
let event;
try {
event = stripe.webhooks.constructEvent(payload, sig, endpointSecret);
} catch (err) {
return response.status(400).send(`Webhook Error: ${err.message}`);
}
if (event.type === 'checkout.session.completed') {
const session = event.data.object;
const promoConsent = session.consent?.promotions;
const email = session.customer_details.email;
recordPromotionalEmailConsent(email, promoConsent)
}
response.status(200).end();
});
在您配置 Checkout 来收集客户发送促销内容的同意书后,您可以通过跟进在完成付款之前离开结账流程的客户的线索来恢复废弃的购物车。