Stripe CLI:如何使用嵌套元数据触发事件

eme*_*his 11 command-line command-line-arguments stripe-payments

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

\n

--add resource:path1.path2=value

\n

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

\n
{\n    id: 1,\n    artistId: 2,\n    image: { \n        url: `https://somepath` \n    }\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的命令:

\n
$ 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\n\xe2\xa3\x9f Checking for new versions... Setting up fixture for: payment_intent\nRunning fixture for: payment_intent\nTrigger failed: Request failed, status=400, body={\n  "error": {\n    "message": "Invalid value type: {:url=\\u003E\\"https://www.arweave.net/ij5O6dDlzxOuWHUnikZapq10kkeEVe_elLWvpfE6ado?ext=PNG\\"} must be a string",\n    "param": "metadata",\n    "type": "invalid_request_error"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

起初,我认为.URL 中的 违反了语法。但是当我将 URL 替换为foo

\n

我想我必须在路径语法上做错什么。或者数据结构的深度可能有最大限制?

\n

更新:

\n

为了回避这个问题,我尝试使用fixtures json文件来实现同样的事情,但它不起作用。我得到了同样的错误,即使语法是 JSON 并且明确的。我联系了 Stripe 支持人员,他们似乎也对这种行为感到困惑。我正在等待他们的升级团队的回复。

\n

Mik*_*chy 23

如果有人来这里寻找在元数据中添加多个项目的方法,您可以通过以下方式实现:

Stripe trigger payment_intent.succeeded --add payment_intent:metadata['key']=testing --add payment_intent:metadata['key2']=testing2
Run Code Online (Sandbox Code Playgroud)

  • 2022 年末对我来说正确的语法是:添加 `metadata = {'dog': 'cat'}` 操作:`stripe trigger payment_intent.created --override payment_intent:metadata.dog=cat` (4认同)

eme*_*his 3

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

  • 您可以在元数据中存储包含对象的 JWT (3认同)