Appearance
说明
采用RESTFul 风格API
Request
Method: 表示对资源操作.
Path:表示资源.
Headers公共请求头:
Content-Type: 表示发送的payload的类型,默认为:application/json。span_token: 请求追踪ID,客户端传入方便追踪用户操作,从而定位问题,如果不传,后端则会生成。password: 访问令牌,由获取会话接口提供terminal: 用户设备数据上报,格式为json字符串,包含以下字段:
json5{ "package_id": "com.example.myapp", // 包名 "version": "1.0.0", // 应用版本 "ip": "192.168.1.1", // ip地址 "country": "US", // 国家 "language": "en", // 语言 "vpn_user": true, // 是否vpn用户 "dev_type": "Android",// 设备类型 ios android "os_version": "Android 13", // 操作系统版本 "device_model": "Samsung Galaxy S22",// 设备型号 "network_type": "WIFI", // 网络类型 "client_time": "2025-06-20 13:38:28", // 客户端时间 }venue: 平台,ios或者androidtrigger_sort: 来源类型,用于归因
Response: 采用Http状态码+自定义错误响应来表示
100-199协议层面,无需处理200-299表示成功,部分无需返回结果的业务以返回的http状态码作为依据300-399相关跳转400-499和500-599响应错误:- 返回给客户端错误信息结构如下:json5
{ "timestamp": 1747312781642, // 时间戳 "status": 503, // http code "trace_id": "T-OrCEGtFR5fsM", // 追踪id "code": 10, // 业务code "path": "/accounts:invite", // 路径 "error": "服务异常" // 错误信息 }
- 返回给客户端错误信息结构如下:
API列表
获取页面布局(根据语言)
Request
Path: /marquees/:layout_type/sectors/:place
Method: get
PathVariable:
layout_type:页面类型,home(首页),ranking(排行榜),playbill(剧单页)
place:语言
Response
- Body
json5{ "marquee": "${@body._embedded.poster}" // 详见页面布局新数据接口 }示例值:
json5{ "marquee": [] }
获取建议配置
Request
Path: /persona/pointers
Method: get
Response
- Body
json5{ "proposal_prefs": "${@body._embedded.advice_setting}" // 配置的建议词 }示例值:
json5{ "proposal_prefs": ["x","xx"] }
上报用户建议
Request
Path: /persona/pointers/elevate
Method: post
Body:
json5{ "pointers": "${@body.advices}", // 建议 "bonus_hints": "${@body.more_advice}" // 更多建议 }示例值:
json5{ "pointers": ["x","xx"], "bonus_hints": "" }Response
- Status: 200
批量删除观看
Request
Path: /persona/chunks/seen
Method: delete
Body:
json5[ { "portion_token": "${@$.episode_id}", // 剧id "place": "${@$.language}" // 语言 } ]示例值:
json5[ { "portion_token": 0, "place": "" } ]Response
- Status: 200
批量删除收藏
Request
Path: /persona/chunks/preferred
Method: delete
Body:
json5[ { "portion_token": "${@$.episode_id}", // 剧id "place": "${@$.language}" // 语言 } ]示例值:
json5[ { "portion_token": 0, "place": "" } ]Response
- Status: 200
获取用户某个短剧的收藏情况
Request
Path: /persona/chunks/:portion_token/sectors/:place/preferred
Method: get
PathVariable:
portion_token:剧id
place:语言
Response
- Body
json5{ "portion_token": "${@body.episode_id}", // 剧id "place": "${@body.language}", // 语言 "endorsed": "${@body.is_favored}", // 是否收藏 "prev_visit_time": "${@body.user_watched_last}" // 最新观看时间 }示例值:
json5{ "portion_token": 1, "place": "en", "endorsed": true, "prev_visit_time": 123 }
获取收藏记录
Request
Path: /persona/preferred
Method: get
QueryParams:
sheet:页码
article_amount:页大小
place:语言
Response
- Body
json5{ "sheet": "${@body.page}", // 页码 "article_amount": "${@body.page_size}", // 页大小 "preferred": [ // _embedded.favored { "portion_token": "${@$.episode_id}", // 剧id "place": "${@$.language}", // 语言 "episode_num": "${@$.part_index}", // 集数 "full_duration": "${@$.total_duration}", // 总时长 "fragment_amount": "${@$.episode_count}", // 总集数 "index_pic": "${@$.cover}", // 封面 "property": "${@$.feature}", // 特征 "modes": "${@$.categories}", // 分类 "preamble": "${@$.title}", // 标题 "abridgment": "${@$.intro}", // 简介 "specifics": "${@$.description}", // 详情 "tickets": "${@$.tags}" // 标签 } ] }示例值:
json5{ "sheet": 1, "article_amount": 12, "preferred": [ { "portion_token": 1, "place": "", "episode_num": 1, "full_duration": 1.1, "fragment_amount": 10, "index_pic": "", "property": "", "modes": ["",""], "preamble": "", "abridgment": "", "specifics": "x", "tickets": ["",""] } ] }
获取用户某个短剧的观看情况
Request
Path: /persona/seen/chunks/:portion_token/sectors/:place
Method: get
PathVariable:
portion_token:剧id
place:语言
Response
- Body
json5{ "portion_token": "${@body.episode_id}", // 剧id "episode_num": "${@body.part_index}", // 集数 "place": "${@body.language}", // 语言 "flux_qty": "${@body.play_times}", // 播放次数 "debut_time": "${@body.started_at}", // 开始播放时间 "ended_timestamp": "${@body.finished_at}" // 观看完成时间 }示例值:
json5{ "portion_token": 1, "episode_num": 1, "place": "en", "flux_qty": 1, "debut_time": 123, "ended_timestamp": 122 }
获取观看记录
Request
Path: /persona/seen
Method: get
QueryParams:
sheet:页码
article_amount:页大小
place:语言
Response
- Body
json5{ "sheet": "${@body.page}", // 页码 "article_amount": "${@body.page_size}", // 页大小 "seen": [ // _embedded.watched { "portion_token": "${@$.episode_id}", // 剧id "place": "${@$.language}", // 语言 "episode_num": "${@$.part_index}", // 集数 "debut_time": "${@$.started_at}", // 开始播放时间 "full_duration": "${@$.total_duration}", // 总时长 "fragment_amount": "${@$.episode_count}", // 总集数 "property": "${@$.feature}", // 特征 "endorsed": "${@$.is_favored}", // 是否收藏 "index_pic": "${@$.cover}", // 封面 "modes": "${@$.categories}", // 分类 "preamble": "${@$.title}", // 标题 "abridgment": "${@$.intro}", // 简介 "flux_qty": "${@$.play_times}", // 播放次数 "tickets": "${@$.tags}" // 标签 } ] }示例值:
json5{ "sheet": 1, "article_amount": 12, "seen": [ { "portion_token": 1, "place": "", "episode_num": 1, "debut_time": 12, "full_duration": 1.1, "fragment_amount": 1, "property": "", "endorsed": true, "index_pic": "", "modes": ["",""], "preamble": "xx", "abridgment": "x", "flux_qty": 11, "tickets": ["",""] } ] }
获取短剧剧集
Request
Path: /chunks/:portion_token/sectors/:place/set
Method: get
PathVariable:
portion_token:剧id
place:语言
Response
- Body
json5{ "portion_token": "${@body.episode_id}", // 剧id "place": "${@body.language}", // 语言 "preamble": "${@body.title}", // 标题 "abridgment": "${@body.intro}", // 简介 "endorsed": "${@body.is_favored}", // 是否收藏 "prev_visit_time": "${@body.user_watched_last}", // 最新观看时间 "permission_rules": { // unlock_setting 全局解锁配置 "currency_each_entry": "${@body.unlock_setting.coins_single_consume}", // 解锁需要的金币 "added_for_view": "${@body.unlock_setting.bonus_single_consume}" // 解锁需要的代币 }, "set": [ // _embedded.playlist { "identity_code": "${@$.id}", // id "portion_token": "${@$.episode_id}", // 剧id "episode_num": "${@$.part_index}", // 集数 "place": "${@$.language}", // 语言 "agree_figure": "${@$.likes}", // 喜欢数 "allowance": "${@$.coins}", // 解锁需要的金币数 "premiums": "${@$.bonus}", // 解锁需要的代币数 "range": "${@$.duration}", // 时长 "abridgment": "${@$.intro}", // 简介 "specifics": "${@$.description}", // 详情 "snippet": "${@$.thumbnail}", // 缩略图 "film_flow": "${@$.stream_hls}", // hls播放地址 "chunk_torrent": "${@$.stream_dash}", // dash播放地址 "gaze_sum": "${@$.watch_times}", // 观看次数 "admission": "${@$.unlock}" // 是否解锁 } ] }示例值:
json5{ "portion_token": 1, "place": "x", "preamble": "xx", "abridgment": "xx", "endorsed": true, "prev_visit_time": 122, "permission_rules": { "currency_each_entry": 100, "added_for_view": 100 }, "set": [ { "identity_code": 3, "portion_token": 2, "episode_num": 1, "place": "en", "agree_figure": 11, "allowance": 100, "premiums": 100, "range": 1.1, "abridgment": "xx", "specifics": "xxx", "snippet": "xx", "film_flow": "xxx", "chunk_torrent": "xxx", "gaze_sum": 11, "admission": true } ] }
获取用户推荐剧列表
Request
Path: /persona/chunks/sectors/:place/propose
Method: get
PathVariable:
- place:语言
QueryParams:
- computation:数量
Response
- Body
json5{ "pick_list": [ // _embedded.recommend_list { "portion_token": "${@$.episode_id}", // 剧集ID "place": "${@$.language}", // 语言 "preamble": "${@$.title}", "abridgment": "${@$.intro}", "endorsed": "${@$.is_favored}", // 是否收藏 "prev_visit_time": "${@$.user_watched_last}", // 最近观看 "permission_rules": { "currency_each_entry": "${@$.unlock_setting.coins_single_consume}", // 解锁需要的金币 "added_for_view": "${@$.unlock_setting.bonus_single_consume}" // 解锁需要的代币 }, "set": [ // _embedded.playlist { "identity_code": "${@$.id}", // ID "portion_token": "${@$.episode_id}", // 剧集ID "episode_num": "${@$.part_index}", // 集数 "place": "${@$.language}", // 语言 "allowance": "${@$.coins}", // 解锁需要的金币数 "premiums": "${@$.bonus}", // 解锁需要的代币数 "agree_figure": "${@$.likes}", // 点赞数 "range": "${@$.duration}", // 时长 "abridgment": "${@$.intro}", // 简介 "specifics": "${@$.description}", // 描述 "snippet": "${@$.thumbnail}", // 缩略图 "film_flow": "${@$.stream_hls}", // HLS流 "chunk_torrent": "${@$.stream_dash}", // DASH流 "gaze_sum": "${@$.watch_times}", // 观看次数 "admission": "${@$.unlock}" // 是否解锁 } ] } ] }示例值:
json5{ "pick_list": [ { "portion_token": 0, "place": "", "preamble": "", "abridgment": "", "endorsed": true, "prev_visit_time": 0, "permission_rules": { "currency_each_entry": 0, "added_for_view": 0 }, "set": [ { "identity_code": 0, "portion_token": 0, "episode_num": 0, "place": "en", "allowance": 0, "premiums": 0, "agree_figure": 0, "range": 0.0, "abridgment": "", "specifics": "", "snippet": "", "film_flow": "", "chunk_torrent": "", "gaze_sum": 0, "admission": true } ] } ] }
获取短剧详情
Request
Path: /chunks/:portion_token/sectors/:place/specifics
PathVariable:
portion_token:剧id
place:语言
Method: get
Response
- Body
json5{ "portion_token": "${@body.episode_id}", // 剧id "place": "${@body.language}", // 语言 "preamble": "${@body.title}", // 标题 "full_duration": "${@body.total_duration}", // 总时长 "fragment_amount": "${@body.episode_count}", // 总集数 "pro_bono_calc": "${@body.free_count}", // 免费集数 "abridgment": "${@body.intro}", // 简介 "specifics": "${@body.description}", // 详情 "aux_title": "${@body.subtitle}", // 副标题 "tickets": "${@body.tags}", // 标签 "sector_complete": "${@body.is_episode_end}" // 是否完结 }示例值:
json5{ "portion_token": 1, "place": "en", "preamble": "", "full_duration": 1.1, "fragment_amount": 1, "pro_bono_calc": 1, "abridgment": "", "specifics": "", "aux_title": "", "tickets": ["x","xx"], "sector_complete": true }
获取短剧
Request
Path: /chunks/:portion_token
PathVariable:
- portion_token:剧id
Method: get
Response
- Body
json5{ "identity_code": "${@body.id}", // id "index_pic": "${@body.cover}", // 封面 "saves_sum": "${@body.bookmarks_count}", // 收藏数 "standing": "${@body.grade}", // 评分 "modes": "${@body.categories}", // 分类 "native_zone": "${@body.default_lang}", // 语言 "launch_timestamp": "${@body.released_at}" // 更新时间 }示例值:
json5{ "identity_code": 1, "index_pic": "xxx", "saves_sum": 10, "standing": 1.0, "modes": ["x","xx"], "native_zone": "en", "launch_timestamp": 123 }
结束播放短剧
Request
Path: /chunks/:portion_token/sectors/:place/sections/:episode_num/flux/finished
Method: get
PathVariable:
portion_token:剧id
episode_num:第几集
place:语言
Response
- Status: 200
开始播放短剧
Request
Path: /chunks/:portion_token/sectors/:place/sections/:episode_num/flux/functioning
Method: get
PathVariable:
portion_token:剧id
episode_num:第几集
place:语言
Response
- Status: 200
用户取消收藏短剧
Request
Path: /persona/chunks/:portion_token/sectors/:place/unsave
Method: get
PathVariable:
portion_token:剧id
place:语言
Response
- Status: 200
用户收藏短剧
Request
Path: /persona/chunks/:portion_token/sectors/:place/shortcut
Method: get
PathVariable:
portion_token:剧id
place:语言
Response
- Status: 200
用户分享短剧
Request
Path: /persona/chunks/:portion_token/sectors/:place/dispersed
Method: get
PathVariable:
portion_token:剧id
place:语言
Response
- Status: 200
获取年龄
Request
Path: /maturity_levels
Method: get
Response
- Body
json5{ "participant_history": "${@body._embedded.ages}" // 词典数据列表 }示例值:
json5{ "participant_history": [] }
修改个人详情
Request
Path: /account_bio/vary
Method: patch
Body:
json5{ "nickname": "${@body.nickname}", // 昵称 "user_pic": "${@body.avatar}", // 头像 "era_argument": "${@body.age}", // 年龄 "identity_group": "${@body.sex}" // 性别 }示例值:
json5{ "nickname": "", "user_pic": "", "era_argument": "", "identity_group": "" }Response
- Status: 200
获取个人详情
Request
Path: /account_bio
Method: get
Response
- Body
json5{ "member_tag": "${@body.user_id}", // 用户id "nickname": "${@body.nickname}", // 昵称 "user_pic": "${@body.avatar}", // 头像 "era_argument": "${@body.age}", // 年龄 "identity_group": "${@body.sex}", // 性别 "provenance_mode": "${@body.source_type}", // 归因类型 "extraordinary": "${@body.special}", // 特殊用户 "reachable": "${@body.is_access}", // 是否白名单用户 "program_facade": "${@body.app_side}", // A、B 面 "private_scan": "${@body.check_vpn}", // 是否开启vpn检测 "account_service_level": { // user_subscription "deal_type": "${@body.user_subscription.payment_method}", // 支付方式(google: 谷歌内购,apple: 苹果内购) "rotation_nature": "${@body.user_subscription.bicycle_type}", // 订阅扣款类型 (weekly,monthly, yearly,用于商品类型为vip和coins_package的) "period_end_date": "${@body.user_subscription.expiration_time}", // 订阅过期时间(时间戳) "noble_mode": "${@body.user_subscription.is_vip}", // 是否为vip "recurring_ok": "${@body.user_subscription.is_subscribed}" // 是否已订阅 }, "rookie_subs": [ // new_user_subscriptions { "deal_type": "${@$.payment_method}", // 支付方式(google: 谷歌内购,apple: 苹果内购) "rotation_nature": "${@$.bicycle_type}", // 订阅扣款类型 (weekly,monthly, yearly,用于商品类型为vip和coins_package的) "period_end_date": "${@$.expiration_time}", // 订阅过期时间(时间戳) "noble_mode": "${@$.is_vip}", // 是否为vip "recurring_ok": "${@$.is_subscribed}", // 是否已订阅 "specie_bit_ref": "${@$.coins_item_id}", // Coins物品id(用于商品类型为coins_package) "gold_aggregate": "${@$.coins_count}", // Coins数量(用于商品类型为coins_package) "added_good_marker": "${@$.bonus_item_id}", // Bonus物品id(用于商品类型为coins_package) "plus_entirety": "${@$.bonus_count}", // Bonus数量(用于商品类型为coins_package) "entry_token": "${@$.sign_item_id}", // 签到赠送Bonus物品id(用于商品类型为coins_package) "signin_sum": "${@$.sign_count}", // 签到赠送Bonus数量(用于商品类型为coins_package) "visit_days": "${@$.sign_days}", // 签到赠送Bonus数量(用于商品类型为coins_package) "outward_pid": "${@$.outer_platform_product_id}" // 外部平台商品id } ], "difference": { // wallet "allowance": "${@body.wallet.coins}", // 金币 "premiums": "${@body.wallet.bonus}" // 代币 }, "nexus": { // _links "platform_subscriber": "${@body._links.app_user.href}", // 用户协议 "sys_private_mode": "${@body._links.app_privacy.href}", // 隐私协议 "code_cost": "${@body._links.app_payment.href}", //支付协议 "program_eu_rights": "${@body._links.app_gdpr.href}", // gdpr "platform_statute": "${@body._links.app_ccpa.href}", //ccpa "conditions": "${@body._links.terms_of_service.href}", // trems "community_app_v": "${@body._links.fb_page_ios.href}", // fb page ios "likes_page_net": "${@body._links.fb_page_web.href}" // fb page web } }示例值:
json5{ "member_tag": "", "nickname": "", "user_pic": "", "era_argument": "", "identity_group": "", "provenance_mode": "", "extraordinary": "", "reachable": "", "program_facade": "", "private_scan": "", "account_service_level": { "deal_type": "", "rotation_nature": "", "period_end_date": 1231, "noble_mode": true, "recurring_ok": true }, "rookie_subs": [ { "deal_type": "", "rotation_nature": "", "period_end_date": 123, "noble_mode": true, "recurring_ok": true, "specie_bit_ref": 1, "gold_aggregate": 0, "added_good_marker": 2, "plus_entirety": 0, "entry_token": 2, "signin_sum": 0, "visit_days": 0, "outward_pid": "" } ], "difference": { "allowance": 100, "premiums": 100 }, "nexus": { "platform_subscriber": "x", "sys_private_mode": "x", "code_cost": "xx", "program_eu_rights": "xx", "platform_statute": "xx", "conditions": "xx", "community_app_v": "x", "likes_page_net": "x" } }
修改用户自动解锁配置
Request
Path: /persona/difference/instant_connect_props
Method: patch
Response
- Status: 200
获取会话
Request
Path: /couplings
Method: get
QueryParams:
- commodity_cast:产品组
Response
- Body
json5{ "signin_proof": "${@body.access_token}", // token "dead_time": "${@body.expires_at}", // 过期时间 "virgin_record": "${@body.is_new_user}", // 是否新用户 "transient_usr": "${@body.is_anonymous}", // 是否匿名用户 "auto_login_prefs": "${@body.auto_unlock_setting}" // 是否开启自动解锁 }示例值:
json5{ "signin_proof": "", "dead_time": 123, "virgin_record": true, "transient_usr": true, "auto_login_prefs": false }
获取指定语言的词典数据
Request
Path: /wordbooks/sectors/:place
Method: get
PathVariable:
- place:语言
Response
- Body
json5{ "wordbooks": [ // 词典数据列表,_embedded.dict_item_vo_lis { "phrase": "${@$.word}", // 词汇 "transl": "${@$.trans}" // 翻译 } ] }示例值:
json5{ "wordbooks": [ { "phrase": "For You", "transl": "Para Você" }, { "phrase": "Home", "transl": "Início" } ] }
获取支持的语言列表
Request
Path: /wordbooks/sectors
Method: get
Response
- Body
json5{ "sectors": "${@body._embedded.languages}" // 支持的语言列表 }示例值:
json5{ "sectors": ["pt", "en"] }
获取首页短剧推送列表
Request
Path: /index_nudge/sectors/:place
Method: get
PathVariable:
- place:语言
Response
- Body
json5{ "topic_core": [ // body { "portion_token": "${@$.episode_id}", // 剧id "preamble": "${@$.title}", // 标题 "index_pic": "${@$.cover}", // 封面 "abridgment": "${@$.intro}" // 详情 } ] }示例值:
json5{ "topic_core": [ { "portion_token": 1, "preamble": "x", "index_pic": "xx", "abridgment": "xxx" } ] }
上报事件
Request
Path: /proceedings/:event_label
Method: post
PathVariable:
- event_label:事件名
Response
Status: 200
Body
json5{ "xxx": "xxx", //事件参数 "xxx": "xxx" }示例值:
json5{ "xxx": "xxx" }
更新FCM访问令牌
Request
Path: /account_bio/cloud_notify_id
Method: patch
Body:
json5{ "device_reg_id": "${@body.fcm_token}" // fcm令牌 }示例值:
json5{ "device_reg_id": "xxxxx" }
Response
- Status: 200
解锁剧集
Request
Path: /chunks/:portion_token/sectors/:place/sections/:episode_num/admission
Method: get
PathVariable:
portion_token:剧id
episode_num:第几集
place:语言
QueryParams:
- access_direction:解锁方式 item 物品解锁 ad 广告解锁
Response
Body
json5{ "identity_code": "${@body.id}", // id "portion_token": "${@body.episode_id}", // 剧id "episode_num": "${@body.part_index}", // 第几集 "place": "${@body.language}", // 语言 "range": "${@body.duration}", // 时长 "snippet": "${@body.thumbnail}", // 首帧图 "film_flow": "${@body.stream_hls}", // hls播放地址 "chunk_torrent": "${@body.stream_dash}" // dash播放地址 }示例值:
json5{ "identity_code": 1, "portion_token": 1, "episode_num": 1, "place": "en", "range": 1.1, "snippet": "xx", "film_flow": "xx", "chunk_torrent": "xx" }
上报用户设备信息
Request
Path: /couplings/gear
Method: post
Body:
json5{ "implement_uid": "${@body.device_id}", //设备id "software_platform": "${@body.os}", // 系统 "patch_level": "${@body.os_version}", // 系统版本 "modify_key": "${@body.adid}", // adjust id "ad_tracking_g": "${@body.google_ad_id}", // google ad id "g_traffic_src": "${@body.google_attribution}", // google 归因信息 "adapt_source": "${@body.adjust_attribution}", // adjust 归因信息 "ad_tracking_i": "${@body.ios_ad_id}", // ios id "intent_path": "${@body.deep_link}" // 深度链接 }示例值:
json5{ "implement_uid": "", "software_platform": "", "patch_level": "", "modify_key": "", "ad_tracking_g": "", "g_traffic_src": "", "adapt_source": "", "ad_tracking_i": "", "intent_path": "" }
Response
Body
json5{ "venue_key": "${@body.theatre_id}" // 剧id }示例值:
json5{ "venue_key": 19 }
获取用户奖励记录
Request
Path: /persona/difference/conferred_notes
Method: get
QueryParams:
present:游标
computation:大小
Response
Body
json5{ "dossier_awards": [ // _embedded.user_rewarded_histories { "identity_code": "${@$.id}", // id "grant_token": "${@$.item_id}", // 物品id "perk_number": "${@$.item_num}", // 物品数量 "reason": "${@$.reason}", // 原因 "produced_moment": "${@$.created_at}" // 创建时间 } ] }示例值:
json5{ "dossier_awards": [ { "identity_code": 1, "grant_token": 2, "perk_number": 100, "reason": "", "produced_moment": 12333 } ] }
获取用户解锁记录
Request
Path: /persona/difference/entry_logs
Method: get
QueryParams:
present:游标
computation:大小
Response
Body
json5{ "member_signins": [ // _embedded.user_unlock_histories { "identity_code": "${@$.id}", // id "portion_token": "${@$.episode_id}", // 剧id "place": "${@$.language}", // 语言 "preamble": "${@$.title}", // 标题 "episode_num": "${@$.part_index}", // 第几集 "access_function": { // unlock_way "premiums": [ // items { "grant_token": "${@$.item_id}", // 物品id "perk_number": "${@$.item_num}" // 物品数量 } ], "permission_level": "${@$.unlock_way.unlock_type}" // 解锁方式 itme 物品 ad 广告 }, "produced_moment": "${@$.created_at}" // 创建时间 } ] }示例值:
json5{ "member_signins": [ { "identity_code": 1, "portion_token": 2, "place": "en", "preamble": "xx", "episode_num": 3, "access_function": { "premiums": [ { "grant_token": 1, "perk_number": 100 } ], "permission_level": "item" }, "produced_moment": 123 } ] }
获取用户钱包
Request
Path: /persona/difference
Method: get
Response
Body
json5{ "allowance": "${@body.coins}", // 金币 "premiums": "${@body.bonus}", // 代币 "auto_login_prefs": "${@body.auto_unlock_setting}" // 是否自动解锁 }示例值:
json5{ "allowance": 100, "premiums": 100, "auto_login_prefs": true }
内购创建订单V2
Request
Path: /sequel_patch/persona/inquiries/spawn
Method: post
Body:
json5{ "ware_uuid": "${@body.product_id}", // 商品ID "deal_type": "${@body.payment_method}", // 支付方式(google: 谷歌内购,apple: 苹果内购) "portion_token": "${@body.episode_id}" // 剧库id,用于数数上报 }示例值:
json5{ "ware_uuid": "", "deal_type": "", "portion_token": "" }Response
- Body
json5{ "profile_query_id": "${@body.user_order_no}", // 订单号(uuid) "outward_pid": "${@body.outer_platform_product_id}", // 外部平台商品id "alien_base": "${@body.outer_platform}", // 外部商品平台(google: 谷歌,apple: 苹果) "ware_uuid": "${@body.product_id}", // 商品ID "deal_type": "${@body.payment_method}" // 支付方式(google: 谷歌内购,apple: 苹果内购) }示例值:
json5{ "profile_query_id": "", "outward_pid": "", "alien_base": "", "ware_uuid": 0, "deal_type": "apple" }
获取所有上架商品V2
Request
Path: /sequel_patch/commercial_obj
Method: get
QueryParams:
sheet:分页
article_amount:分页大小
division:商品类型,vip(VIP订阅)、coins_package(金币包订阅)、gift_radio(充值赠币)
Response
- Body
json5{ "sheet": "${@body.page}", // 页码 "article_amount": "${@body.page_size}", // 分页大小 "commercial_obj": [ // _embedded.products { "identity_code": "${@$.id}", // 商品ID "caption": "${@$.name}", // 商品名 "tariff": "${@$.price}", // 商品原单价 "lower_price": "${@$.discount_price}", // 商品优惠价格 "specie_bit_ref": "${@$.coins_item_id}", // Coins物品id(用于商品类型为gift_radio) "gold_aggregate": "${@$.coins_count}", // Coins数量(用于商品类型为gift_radio) "plus_entirety": "${@$.bonus_count}", // Bonus数量(用于商品类型为gift_radio) "added_good_marker": "${@$.bonus_item_id}", // Bonus物品id(用于商品类型为gift_radio) "bounty_pace": "${@$.gift_ratio}", // 赠送比例(买金币赠送代币的比例,用于商品类型为gift_radio) "rotation_nature": "${@$.sub_bicycle_type}", // 订阅扣款类型 (weekly,monthly,用于商品类型为vip和coins_package的) "alien_base": "${@$.outer_platform}", // 外部商品平台(google: 谷歌,apple: 苹果) "outward_pid": "${@$.outer_platform_product_id}", // 外部平台商品id "imported_lbl": "${@$.outer_platform_product_name}", // 外部平台商品名 "rebate_timer": "${@$.duration_discount_minutes}", // 限时优惠倒计时(单位分钟) "reduced_bool": "${@$.is_discount}", // 是否为限时优惠 "division": "${@$.type}", // 商品类型,vip(VIP订阅)、coins_package(金币包订阅)、gift_radio(充值赠币) "specifics": "${@$.description}" // 商品详情描述 } ] }示例值:
json5{ "sheet": 1, "article_amount": 10, "commercial_obj": [ { "identity_code": 1, "caption": "Week Subscription", "tariff": 29.9, "lower_price": 9.9, "specie_bit_ref": 1, "gold_aggregate": 0, "plus_entirety": 0, "added_good_marker": 2, "bounty_pace": 0.0, "rotation_nature": "weekly", "alien_base": "", "outward_pid": "", "imported_lbl": "", "rebate_timer": 0, "reduced_bool": false, "division": "vip", "specifics": "Week Subscription" } ] }
未支付订单取消V2
Request
Path: /sequel_patch/persona/inquiries/:call_tag/scrap
Method: patch
PathVariable:
- call_tag:订单号(uuid)
Response
- Status: 200
苹果订阅恢复
Request
Path: /icloud/persona/reclamation/:hash
Method: post
PathVariable:
- hash:苹果交易ID
Response
- Body
json5{ "hash": "${@body.transaction_id}", // 苹果交易ID "member_tag": "${@body.user_id}", // 用户ID "signin_proof": "${@body.access_token}" // 恢复后的用户访问令牌 }示例值:
json5{ "hash": "xxx", "member_tag": "xxxx", "signin_proof": "xxxx" }
获取订单列表V2
Request
Path: /sequel_patch/persona/inquiries
Method: get
QueryParams:
sheet:分页
article_amount:分页大小
Response
- Body
json5{ "sheet": "${@body.page}", // 页码 "article_amount": "${@body.page_size}", // 分页大小 "inquiries": [ // _embedded.orders { "call_tag": "${@$.order_no}", // 订单号(uuid) "rotation_nature": "${@$.sub_bicycle_type}", // 订阅扣款类型(weekly: 周订阅,monthly: 月订阅,用于商品类型为 vip 和 coins_package) "specie_bit_ref": "${@$.coins_item_id}", // Coins 物品 id(用于商品类型为 gift_radio 和 coins_package) "gold_aggregate": "${@$.coins_count}", // Coins 数量(用于商品类型为 gift_radio 和 coins_package) "plus_entirety": "${@$.bonus_count}", // Bonus 数量(用于商品类型为 gift_radio 和 coins_package) "added_good_marker": "${@$.bonus_item_id}", // Bonus物品id(用于商品类型为gift_radio) "bounty_pace": "${@$.gift_ratio}", // 赠送比例(买金币赠送代币的比例,用于商品类型为 gift_radio 和 coins_package) "merch_caption": "${@$.product_name}", // 商品名 "stock_division": "${@$.product_type}", // 商品类型,vip(VIP订阅)、coins_package(金币包订阅)、gift_radio(充值赠币) "terminal_bill": "${@$.actual_amount}", // 商品实付金额 "period_end_date": "${@$.subscription_expiration_time}", // 订阅失效截止时间(用于商品类型为 vip 和 coins_package,单位:秒) "stage": "${@$.status}", // 订单状态(processing: 处理中,success: 成功,failed: 失败,refunded: 已退款) "exchange_point": "${@$.payment_time}", // 支付时间(单位:秒) "deal_type": "${@$.payment_method}", // 支付方式(google: 谷歌内购,apple: 苹果内购) "crash_root": "${@$.failed_reason}", // 订单失败原因 "produced_moment": "${@$.created_at}" // 创建时间,时间戳秒 } ] }示例值:
json5{ "sheet": 1, "article_amount": 10, "inquiries": [ { "call_tag": "", "rotation_nature": "weekly", "specie_bit_ref": 1, "gold_aggregate": 0, "plus_entirety": 0, "added_good_marker": 2, "bounty_pace": 0.5, "merch_caption": "", "stock_division": "gift_radio", "terminal_bill": 9.9, "period_end_date": 1697059200, "stage": "success", "exchange_point": 1696972800, "deal_type": "google", "crash_root": "", "produced_moment": 1696972800 } ] }
谷歌订阅恢复
Request
Path: /android/persona/reclamation/:hash
Method: post
PathVariable:
- hash:谷歌订单id
Response
- Body
json5{ "hash": "${@body.transaction_id}", // 谷歌交易ID "member_tag": "${@body.user_id}", // 用户ID "signin_proof": "${@body.access_token}" // 恢复后的用户访问令牌 }示例值:
json5{ "hash": "xxx", "member_tag": "xxxx", "signin_proof": "xxxx" }