You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

支付成功后如何获取买家结账时应用的促销码?

获取支付完成后已应用的促销码

针对你遇到的checkout.session.completed webhook和Retrieve Checkout Session API仅显示折扣、不直接返回促销码的问题,可以通过以下方式获取买家使用的促销码:

  • 通过Discount对象关联查询促销码
    结账会话返回的discount字段中,若买家使用了促销码,会包含promotion_code(对应促销码资源的ID)。调用PromotionCode.retrieve() API,传入该ID即可获取完整的促销码信息,其中code字段就是买家结账时输入的促销码内容。

    示例代码(Python):

    import stripe
    
    stripe.api_key = "你的API密钥"
    
    # 从结账会话数据中提取promotion_code ID
    promotion_code_id = checkout_session["discount"]["promotion_code"]
    # 检索促销码详情
    promotion_code = stripe.PromotionCode.retrieve(promotion_code_id)
    # 输出买家使用的促销码
    print(promotion_code.code)
    
  • 直接使用优惠券的情况处理
    如果discount字段仅包含coupon(无promotion_code),说明买家直接使用了优惠券ID而非促销码。此时可直接取用优惠券的id或name字段作为优惠标识,具体根据你的业务设置逻辑判断。

  • 备选方案:自定义Metadata存储
    若需要更直接的获取方式,可在创建Checkout Session时,将前端收集到的促销码写入会话的metadata字段。支付完成后,就能直接从结账会话的metadata中读取该促销码。这种方式需要前端配合传递促销码数据,但无需额外调用API查询。


内容的提问来源于stack exchange,提问作者Sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:28:14