/api/v1/profile/transaction-event/save/ 保存交易事件
为用户画像记录一条商店交易事件。Adapty Mail 使用交易事件将用户画像纳入基于购买的流程——
event_type 对应取消续订、账单问题、已过期和已退款等流程——并用于收入归因。
在处理购买、续订和取消操作时发送这些事件。只有 从未购买 流程不需要交易事件即可运行。
Request body
交易事件的类型。基于购买的流程由这些值触发。
One of: "subscription_started", "subscription_renewed", "subscription_renewal_cancelled", "subscription_renewal_reactivated", "billing_issue_detected", "entered_grace_period", "subscription_refunded", "subscription_expired", "non_subscription_purchase", "non_subscription_purchase_refunded"
由您的系统持有的此事件唯一标识符。用于保证事件的幂等性。
事件的记录时间,采用 ISO 8601 格式。
与保存用户画像时相同的稳定 external_profile_id。用于将交易关联到对应的用户画像。
交易来源的商店,例如 app_store、play_store 或 stripe。
商店中已购产品的标识符。
此交易在商店中的标识符。
订阅链中首次交易的标识符。对于首次购买,此值与 store_transaction_id 相同。
此交易的发生时间,采用 ISO 8601 格式。
订阅首次购买的时间,采用 ISO 8601 格式。
交易金额(以美元计),采用十进制字符串格式(例如 "9.99")。
订阅到期或已到期的时间,采用 ISO 8601 格式。非订阅类购买请忽略此字段。
适用于此交易的促销活动或新用户优惠的详细信息。
One of: "introductory", "promotional", "offer_code", "win_back"
One of: "free_trial", "pay_as_you_go", "pay_up_front"
商店中该优惠的标识符(如有)。
Responses
交易事件保存成功。响应体为空对象。
Schema
Example
{} 验证失败——必填字段缺失或无效。field_name 指示出错的字段。
Schema
标准错误响应。每次失败均返回包含此结构的 4XX 状态码。
错误的可读描述。
机器可读的错误标识符。
此错误对应的 HTTP 状态码。
导致错误的请求字段,若错误与特定字段无关则为 null。
Example
{
"errors": [
{
"message": "Field required",
"error_code": "base_error",
"status_code": 400,
"field_name": "event_type"
}
]
} 缺少或无效的密钥 API 密钥。
Schema
标准错误响应。每次失败均返回包含此结构的 4XX 状态码。
错误的可读描述。
机器可读的错误标识符。
此错误对应的 HTTP 状态码。
导致错误的请求字段,若错误与特定字段无关则为 null。
Example
{
"errors": [
{
"message": "Secret key doesn't exist",
"error_code": "secret_key_does_not_exist_error",
"status_code": 403,
"field_name": null
}
]
}