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

Stripe支付链接附加的client_id未出现在Webhook事件中,如何查找?

解决Stripe支付链接client_id参数获取问题

直接在支付链接后拼接URL参数(如?client_id=123)的方式,Stripe不会自动将该参数带入Webhook事件的payload或元数据中,你需要通过以下正确方式传递并获取client_id:

  • 创建支付链接时嵌入元数据
    无论是通过Stripe API还是Dashboard创建支付链接,都需要将client_id添加到支付链接的metadata中:

    • API方式:调用创建PaymentLink的接口时,在请求体中加入metadata字段:
      // 示例(实际根据你使用的语言调整)
      stripe.paymentLinks.create({
        line_items: [{price: 'price_123', quantity: 1}],
        metadata: {
          client_id: '123'
        }
      });
      
    • Dashboard方式:编辑支付链接时,找到「高级选项」-「元数据」,手动添加client_id:123的键值对。
  • Webhook中获取元数据
    在你验证Webhook事件后,从对应事件的对象中提取metadata:

    // 示例:以checkout.session.completed事件为例
    Event event = Webhook.constructEvent(payload, sigHeader, STRIPE_SIGN_SECRET);
    if ("checkout.session.completed".equals(event.getType())) {
      Session session = (Session) event.getDataObjectDeserializer().getObject().get();
      String clientId = session.getMetadata().get("client_id");
      // 后续处理逻辑
    }
    
  • 补充说明
    若使用Stripe自定义结账流程(而非原生支付链接),也可在前端获取URL中的client_id,再在创建Checkout Session时传入metadata字段,最终同样从Webhook的Session对象中提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:22:16