介绍
元数据允许您在 Dodo Payments 中存储有关对象的附加结构化信息。您可以将元数据附加到大多数 Dodo Payments 对象,包括支付、订阅等。概述
- 元数据键最长可包含 40 个字符
- 元数据值可以是字符串、整数、数字或布尔值;字符串最长可包含 500 个字符
- 不接受对象、数组和
null作为元数据值 - 每个对象最多可以有 50 个元数据键值对
- 键只能包含字母数字字符、连字符和下划线
- 无法使用我们的 API 搜索元数据,但元数据会在 API 响应和 Webhook 中返回
用例
元数据对于以下情况非常有用:- 存储外部 ID 或引用
- 添加内部注释
- 将 Dodo Payments 对象链接到您的系统
- 对交易进行分类
- 为报告添加自定义属性
添加元数据
您可以在通过 API 创建或更新对象时添加元数据。对于产品,您还可以选择直接从仪表板 UI 添加元数据。通过 API
通过仪表板 UI(仅限产品)
对于产品,您还可以在创建或编辑产品时直接从 Dodo Payments 仪表板添加元数据。元数据部分允许您轻松添加自定义键值对,而无需编写代码。
检索元数据
在检索对象时,元数据包含在 API 响应中:检索结账会话(
GET /checkouts/{id})不会返回 metadata。会话状态响应仅包含 id、created_at、payment_id、payment_status、customer_email 和 customer_name。请改为从该会话创建后生成的付款中读取您附加的元数据,使用该端点返回的 payment_id。搜索和筛选
虽然无法直接通过我们的 API 搜索元数据,但您可以:- 将重要标识符存储在元数据中
- 使用对象的主 ID 检索对象
- 在应用程序代码中筛选结果
最佳实践
应遵循:
- 为元数据键使用一致的命名约定
- 在内部记录元数据架构
- 保持值简短且具有明确含义
- 仅将元数据用于静态数据
- 考虑为不同系统使用前缀(例如:
crm_id、inventory_sku)
不应:
- 在元数据中存储敏感数据
- 将元数据用于频繁变更的值
- 依赖元数据实现关键业务逻辑
- 在对象的其他位置已有重复信息时再次存储
- 在元数据键中使用特殊字符