【问题标题】:Stripe CLI: How to trigger events with nested metadataStripe CLI:如何使用嵌套元数据触发事件
【发布时间】:2022-01-24 15:13:18
【问题描述】:

我正在使用 Stripe CLI 来触发本地 webhook 事件。该命令允许我使用以下选项/语法设置元数据:

--add resource:path1.path2=value

我尝试创建的元数据结构如下所示:

{
    id: 1,
    artistId: 2,
    image: { 
        url: `https://somepath` 
    }
}

这是我的命令:

$ stripe trigger payment_intent.succeeded --add payment_intent:metadata.id=1 --add payment_intent:metadata.artistId=1 --add payment_intent:metadata.image.url=https://www.arweave.net/ij5O6dDlzxOuWHUnikZapq10kkeEVe_elLWvpfE6ado?ext=PNG
⣟ Checking for new versions... Setting up fixture for: payment_intent
Running fixture for: payment_intent
Trigger failed: Request failed, status=400, body={
  "error": {
    "message": "Invalid value type: {:url=\u003E\"https://www.arweave.net/ij5O6dDlzxOuWHUnikZapq10kkeEVe_elLWvpfE6ado?ext=PNG\"} must be a string",
    "param": "metadata",
    "type": "invalid_request_error"
  }
}

起初,我认为 URL 中的 . 破坏了语法。但是当我将 URL 替换为 foo 时,我得到了同样的错误。

我认为我必须在路径语法上做错事。或者数据结构的深度是否存在最大限制?

更新:

为了回避这个问题,我尝试使用fixtures json file 实现相同的目的,但没有成功。我得到了同样的错误,即使语法是 JSON 并且是明确的。我联系了 Stripe 支持,他们似乎也对这种行为感到困惑。我正在等待他们的升级团队的回复。

【问题讨论】:

    标签: command-line stripe-payments command-line-arguments


    【解决方案1】:

    如果有人来这里寻找在元数据中添加多个项目的方法,您可以这样做:

    Stripe trigger payment_intent.succeeded --add payment_intent:metadata['key']=testing --add payment_intent:metadata['key2']=testing2
    

    【讨论】:

      【解决方案2】:

      Stripe 支持确认元数据对象只能具有键/值对,其中的值是字符串。我试图将对象用作值来创建更复杂的数据结构,但这不受支持。 :-(

      【讨论】:

        【解决方案3】:

        image.url 中的. 给您带来问题。 . 表示下一层,但元数据参数不能这样嵌套。

        您可以将密钥修改为可接受的值,例如 image_urlimageURL,这应该可以解决您遇到的错误。 (image_url 成功了)

        【讨论】:

        • 嗨托比。 image.url 不是密钥的名称。它应该是一个嵌套对象。 image 对象具有 url 属性。
        • ...但我认为您对 . 破坏语法的看法绝对正确。我想真正的问题是如何传递更深层次的数据结构。文档显示:--add resource:path1.path2=value 我理解这意味着至少允许某种级别的嵌套。有两个级别的硬性限制吗?
        猜你喜欢
        • 1970-01-01
        • 2020-10-25
        • 2013-08-26
        • 2015-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-04
        相关资源
        最近更新 更多