如何获取Stripe Payment Link优惠码信息及统一查询方案
Stripe优惠码信息获取方案(覆盖订阅、发票、Payment Link场景)
一、Payment Link场景的优惠码信息获取
- 针对
customer.discount.created事件缺少客户邮箱的问题:可通过事件内的customer字段(客户ID)调用stripe.customers.retrieve(customer_id)接口获取客户邮箱。 - 监听
checkout.session.completed事件:若用户使用了优惠码,事件中的session.discount字段会包含coupon对象,可从中获取优惠码ID及详情;若为促销代码(promo code)对应的优惠券,还能通过coupon.promotion_code关联到具体促销代码信息。 - 一次性付款场景补充:若Payment Link为一次性付款,
payment_intent.succeeded无直接优惠码信息,可通过付款单关联的checkout.sessionID反向查询会话详情,提取优惠码数据。
二、统一查询所有支付类型优惠码的最佳事件
优先选择**invoice.paid事件**作为统一查询入口:
- 订阅场景:事件天然包含订阅、发票、优惠码的完整关联信息,直接可用。
- 发票场景:一次性发票支付完成后会触发该事件,
discount字段可直接获取优惠码详情。 - Payment Link场景:若关联订阅,会触发该事件;若为一次性付款,Stripe会生成对应一次性发票,付款完成后同样触发
invoice.paid,事件内的discount字段包含优惠码信息,同时可通过invoice.customer_email获取客户邮箱。
通过invoice.paid事件可统一覆盖三种支付场景,无需分别监听多个事件。
内容的提问来源于stack exchange,提问作者ksernow
相关产品推荐
相关产品推荐

