Skip to main content

介绍

元数据允许您在 Dodo Payments 中存储有关对象的附加结构化信息。您可以将元数据附加到大多数 Dodo Payments 对象,包括支付、订阅等。

概述

  • 元数据键最长可包含 40 个字符
  • 元数据值可以是字符串、整数、数字或布尔值;字符串最长可包含 500 个字符
  • 不接受对象、数组和 null 作为元数据值
  • 每个对象最多可以有 50 个元数据键值对
  • 键只能包含字母数字字符、连字符和下划线
  • 无法使用我们的 API 搜索元数据,但元数据会在 API 响应和 Webhook 中返回

用例

元数据对于以下情况非常有用:
  • 存储外部 ID 或引用
  • 添加内部注释
  • 将 Dodo Payments 对象链接到您的系统
  • 对交易进行分类
  • 为报告添加自定义属性

添加元数据

您可以在通过 API 创建或更新对象时添加元数据。对于产品,您还可以选择直接从仪表板 UI 添加元数据。

通过 API

通过仪表板 UI(仅限产品)

对于产品,您还可以在创建或编辑产品时直接从 Dodo Payments 仪表板添加元数据。元数据部分允许您轻松添加自定义键值对,而无需编写代码。
Product metadata interface in Dodo Payments dashboard
对于需要管理产品信息和类别的非技术团队成员而言,使用仪表盘 UI 管理产品元数据特别有用。

检索元数据

在检索对象时,元数据包含在 API 响应中:
检索结账会话(GET /checkouts/{id})不会返回 metadata。会话状态响应仅包含 idcreated_atpayment_idpayment_statuscustomer_emailcustomer_name。请改为从该会话创建后生成的付款中读取您附加的元数据,使用该端点返回的 payment_id

搜索和筛选

虽然无法直接通过我们的 API 搜索元数据,但您可以:
  1. 将重要标识符存储在元数据中
  2. 使用对象的主 ID 检索对象
  3. 在应用程序代码中筛选结果

最佳实践

应遵循:

  • 为元数据键使用一致的命名约定
  • 在内部记录元数据架构
  • 保持值简短且具有明确含义
  • 仅将元数据用于静态数据
  • 考虑为不同系统使用前缀(例如:crm_idinventory_sku

不应:

  • 在元数据中存储敏感数据
  • 将元数据用于频繁变更的值
  • 依赖元数据实现关键业务逻辑
  • 在对象的其他位置已有重复信息时再次存储
  • 在元数据键中使用特殊字符

支持的对象

以下对象支持元数据:

Webhook 和元数据

元数据会包含在 Webhook 事件中,因此可以轻松使用您的自定义数据处理通知:
最后修改于 2026年8月6日