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

如何在Stripe CLI的checkout.session.completed触发器中添加custom_fields

解决Stripe Trigger添加Custom Fields时的400错误问题

你的问题核心是混淆了Checkout Session创建API的参数结构和Webhook payload的结构:

  • 创建Checkout Session时,custom_fields仅需定义字段元数据(key、类型、标签),无需传递用户填写的text[value]——这个值是用户提交表单后才会生成并出现在Webhook payload中的内容。
  • 你在命令中加入的custom_fields[0][text][value]不属于创建Session的合法参数,因此Stripe返回了「参数未知」的400错误。

正确操作步骤

1. 先定义自定义字段结构

使用以下命令触发事件,仅传递创建Session所需的自定义字段元数据:

$ stripe trigger checkout.session.completed \
    --add "checkout_session:custom_fields[0][key]"="foo" \
    --add "checkout_session:custom_fields[0][type]"="text" \
    --add "checkout_session:custom_fields[0][label][type]"="custom" \
    --add "checkout_session:custom_fields[0][label][custom]"="bar"

此时Webhook事件会包含你定义的字段,但text[value]为空,因为默认未模拟用户输入。

2. 模拟用户填写的自定义字段值

若需要Webhook收到带用户输入值的custom_fields,需修改最终触发的事件payload,有两种实现方式:

方式一:用--modify参数直接修改事件
$ stripe trigger checkout.session.completed \
    --add "checkout_session:custom_fields[0][key]"="foo" \
    --add "checkout_session:custom_fields[0][type]"="text" \
    --add "checkout_session:custom_fields[0][label][type]"="custom" \
    --add "checkout_session:custom_fields[0][label][custom]"="bar" \
    --modify "checkout_session:custom_fields[0][text][value]"="baz"

--modify用于修改最终生成的Webhook事件payload,而非创建Session的API参数,这样就能让Webhook收到带baz值的自定义字段。

方式二:使用自定义Fixture文件

创建JSON文件(如custom_checkout_event.json),定义完整事件结构:

{
  "event": {
    "type": "checkout.session.completed",
    "data": {
      "object": {
        "custom_fields": [
          {
            "key": "foo",
            "type": "text",
            "label": {
              "type": "custom",
              "custom": "bar"
            },
            "text": {
              "value": "baz"
            }
          }
        ]
      }
    }
  }
}

随后用以下命令触发:

$ stripe trigger checkout.session.completed --fixture custom_checkout_event.json

关键区别

  • --add:传递创建Checkout Session的API参数,必须符合Stripe Create Checkout Session API的参数规范。
  • --modify:修改最终触发的Webhook事件payload,可添加API参数中没有的返回字段(如用户填写的自定义字段值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:03:13