Stripe CLI:如何使用嵌套元数据触发事件
Stripe CLI: How to trigger events with nested metadata
我正在使用 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 中的 .
破坏了语法。但是当我用 foo
.
替换 URL 时,我得到了同样的错误
我想我一定是在路径语法上做错了什么。或者数据结构的深度可能有最大限制?
更新:
为了回避这个问题,我尝试使用 fixtures json file 来实现同样的目的,但没有成功。我得到了同样的错误,即使语法是 JSON 并且明确。我联系了 Stripe 支持,他们似乎也对这种行为感到困惑。我正在等待他们升级团队的回复。
image.url
键中的 .
给您带来了问题。 .
表示向下一个级别,但元数据参数不能像那样嵌套。
您可以将密钥修改为可接受的值,例如 image_url
或 imageURL
,这应该可以解决您遇到的错误。 (image_url
帮了我大忙)
Stripe 支持确认元数据对象只能有键/值对,其中的值是字符串。我试图使用对象作为值来创建更复杂的数据结构,但这是不受支持的。 :-(
如果有人来这里寻找在元数据中添加多个项目的方法,您可以通过以下方式实现:
Stripe trigger payment_intent.succeeded --add payment_intent:metadata['key']=testing --add payment_intent:metadata['key2']=testing2
我正在使用 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 中的 .
破坏了语法。但是当我用 foo
.
我想我一定是在路径语法上做错了什么。或者数据结构的深度可能有最大限制?
更新:
为了回避这个问题,我尝试使用 fixtures json file 来实现同样的目的,但没有成功。我得到了同样的错误,即使语法是 JSON 并且明确。我联系了 Stripe 支持,他们似乎也对这种行为感到困惑。我正在等待他们升级团队的回复。
image.url
键中的 .
给您带来了问题。 .
表示向下一个级别,但元数据参数不能像那样嵌套。
您可以将密钥修改为可接受的值,例如 image_url
或 imageURL
,这应该可以解决您遇到的错误。 (image_url
帮了我大忙)
Stripe 支持确认元数据对象只能有键/值对,其中的值是字符串。我试图使用对象作为值来创建更复杂的数据结构,但这是不受支持的。 :-(
如果有人来这里寻找在元数据中添加多个项目的方法,您可以通过以下方式实现:
Stripe trigger payment_intent.succeeded --add payment_intent:metadata['key']=testing --add payment_intent:metadata['key2']=testing2