Table of Contents
7.2 我的订阅列表【基础探测通过,待数据联调】
GET /tieup/api/v1/me/subscriptions
查询参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
status |
integer | 否 | 1=生效中,2=已过期,3=已取消,4=即将过期;status=4 表示当前时间距离 expires_at 5 天内 |
artist_id |
integer | 否 | 偶像 ID |
响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
items |
array | 当前页数据列表 |
items[].subscription_no |
string | 订阅编号 |
items[].fan_user_id |
integer | 当前粉丝用户 ID |
items[].artist_id |
integer | 艺人 ID |
items[].artist_user_id |
integer | 艺人绑定 APP 用户 ID |
items[].artist_name |
string | 艺人名称 |
items[].artist_avatar |
string | 艺人头像,严格读取独立维护的 tieup_artist.avatar;未配置时返回空字符串,不回退绑定账号的用户头像 |
items[].order_no |
string | 订阅对应平台订单号 |
items[].recharge_no |
string/null | 订阅对应业务单号 |
items[].subscription_plan_code |
string | 订阅档位编码 |
items[].plan_name_snapshot |
string | 订阅档位名称快照 |
items[].sub_type |
string | 订阅周期类型:month=月卡,year=年卡 |
items[].subscription_action |
string | 订阅动作:initial/renewal/legacy |
items[].pay_amount |
string | 支付金额,单位元,固定两位小数 |
items[].duration_days |
integer | 本周期权益天数 |
items[].started_at |
string | 订阅开始时间 |
items[].expires_at |
string | 订阅过期时间 |
items[].is_auto_renew |
integer | 是否继续自动续费:1=是,2=否;关闭自动续费不影响当前已支付周期 |
items[].status |
integer | 订阅状态:1=生效中,2=已过期,3=已取消,4=即将过期 |
items[].cancelled_at |
string/null | 取消时间 |
pagination.page |
integer | 当前页码 |
pagination.page_size |
integer | 每页数量 |
pagination.total |
integer | 总数量 |
pagination.next_cursor |
string/null | 下一页游标;当前页码分页场景固定为空 |
响应示例:
{
"code": 200,
"message": "成功",
"data": {
"items": [
{
"subscription_no": "TS202606170001",
"fan_user_id": 10001,
"artist_id": 20001,
"artist_user_id": 30001,
"artist_name": "示例艺人",
"artist_avatar": "https://cdn.example.com/artist.png",
"order_no": "TO202606170001",
"recharge_no": "RC202606170001",
"subscription_plan_code": "month_vip",
"plan_name_snapshot": "月度订阅",
"sub_type": "month",
"subscription_action": "initial",
"pay_amount": "29.90",
"duration_days": 30,
"started_at": "2026-06-17 10:00:00",
"expires_at": "2026-07-17 23:59:59",
"is_auto_renew": 2,
"status": 4,
"cancelled_at": null
}
],
"pagination": {
"page": 1,
"page_size": 20,
"total": 1,
"next_cursor": null
}
}
}
业务规则:
- 列表按当前用户订阅过的艺人聚合;同一艺人的多笔订阅只返回
id最大的最新一笔,列表排序仍按该最新记录id倒序。 -
artist_id和status均在每个艺人的最新订阅确定后执行筛选,不会回退返回该艺人的历史匹配记录;pagination.total为筛选后艺人数量。 -
status=4为 APP 动态展示状态,不写入tieup_subscription.status。 - 即将过期判断范围为服务端当前时间之后 5 天内:
now < expires_at <= now + 5 days。 - 已过期判断优先于即将过期:
expires_at <= now时返回status=2,即使数据库状态补偿尚未执行。 -
status=1筛选只返回未进入即将过期窗口的生效订阅;status=4筛选只返回即将过期订阅。 -
status=2筛选同时返回数据库已标记过期的记录和尚未落库但到期时间已到的记录。 -
sub_type直接读取tieup_subscription.sub_type,该字段由下单时传入的month/year固化,不通过duration_days推断。