fix: 橘视厅接口地址对齐 release App 现网配置

- 媒资接口 servhub-ep03 → servhub-ep01(ep03 媒资滞后,新片查不到、片名错位)
- 登录接口 external(预发布) → api.future.jetsentv.com(现网)
- 新增 JST-INTERFACE-REFERENCE.md 接口排查手册
This commit is contained in:
zhaogd
2026-09-26 14:28:13 +08:00
parent d9546840d3
commit 73c34ddefe
4 changed files with 129 additions and 3 deletions

126
JST-INTERFACE-REFERENCE.md Normal file
View File

@@ -0,0 +1,126 @@
# 橘视厅接口参考手册(日常排查用)
> 2026-09-09 整理。来源:release App `jiecheng_business1.3.27` 抓包 + 后端实测 + 同事现场 curl 验证。
---
## 一、基础凭证(release App 写死,我方沿用)
```
sptoken = 9006874392099a89506142c6df9e3314
signKey = alltvjs
portalcode = PCODE-JC
channelid = 001
```
签名算法:`sign = MD5(sptoken + timeshift + portalcode + signKey).toUpperCase()`
---
## 二、CDN 节点与数据差异(核心坑)
### 现网 servhub(DNS 同 IP 但媒资库版本不同!)
| 节点 | 完整 URL | release App 命中 | 说明 |
|---|---|---|---|
| **ep01** | `https://servhub-ep01.future.jetsentv.com/` | ✅ 实际走这个 | 最新片(8月中下旬上线的)、正确片名 |
| **ep03** | `https://servhub-ep03.future.jetsentv.com/` | ❌ 已弃用 | 媒资滞后,新片缺失、片名被改写 |
### 实测对比(ep01 vs ep03)
| 片名 | contentcode | ep01 | ep03 |
|---|---|---|---|
| 后悔没有好好爱过你 | `23010022026090109192132084` | ✅ 同名 | ✅ 同名 |
| 乌女山怪谈 | `23010022026090109192132085` | ✅ 同名 | ✅ 同名 |
| 千门八将之群龙夺宝 | `23010022026082517202131945` | ✅ 同名 | ✅ 同名 |
| 日出江花 | `23010022026082416335131944` | ✅ 同名 | ✅ 同名 |
| 刺客的身份 | `23010022026080316521131798` | ✅ 同名 | ✅ 同名 |
| 湘西异闻录 | `23010022026072809450131743` | ✅ 原名湘西异闻录 | ⚠️ **显示为血夜行** |
| 海墓龙棺 | `23010022026081017241131881` | ✅ 有 | ❌ **完全查不到**(sizetotal=0) |
**结论**:后端媒资代理必须走 **ep01**,否则新片查不到、老片片名错位。
### 预发布 external
| 节点 | 完整 URL | 说明 |
|---|---|---|
| external-ep01 | `https://external-ep01.future.jetsentv.com:8010` | App 预发布主入口 |
| external-ep02 | `https://external-ep02.future.jetsentv.com` | 预发布备用 |
---
## 三、API 主入口(登录/激活/支付,不走 servhub)
| 环境 | 完整 URL | 用途 |
|---|---|---|
| 现网 | `https://api.future.jetsentv.com/` | ums_api(login/logout/isLogin)、ccms_api(activateCard/queryUsable)、bms_api(queryOrderList/getPayResultCycle) |
| 预发布 | `https://external.future.jetsentv.com/` | 同上 |
> **不受 ep01/ep03 影响**,API 统一网关。
---
## 四、图片 CDN
| 域名 | 用途 |
|---|---|
| `https://imgcms.jetsenx.huashi.tv` | **主**:新片海报(海墓龙棺、湘西异闻录等) |
| `https://img01.jetsenx.huashi.tv` | 老片海报 |
---
## 五、华视网聚旧域名(已全部失效)
| 域名 | 当前状态 |
|---|---|
| `https://api.jetsenx.huashi.tv` | 502 Bad Gateway |
| `https://external.jetsenx.huashi.tv` | 404 Not Found |
---
## 六、我方后端配置项
文件:`src/main/java/io/as/modules/media/config/JetsenMediaConfig.java`
```yaml
jetsen:
media:
base-url: https://servhub-ep01.future.jetsentv.com/ # ← ep01,关键!
path-prefix: /IPTVPortalInterface
sp-token: 9006874392099a89506142c6df9e3314
portal-code: PCODE-JC
sign-key: alltvjs
channel-id: "001"
```
橘视厅 API(登录/激活)配置在数据库 `sys_config` 的 `JST_PLATFORM_CONFIG`:
```json
{
"jstApiBaseUrl": "https://api.future.jetsentv.com",
"accesser": "JSTASJD",
"secret": "kMeWsBu0QsTXpnft",
"agCode": "1100101010200492358120169",
"serviceComboCode": "1100121010200494755850172",
"serviceGroupCode": "1100122010201752209710182",
"businessLine": "4100450011381755998420012"
}
```
---
## 七、日常排查 Checklist
**媒资查不到 / 片名错位**
1. 先确认 contentcode 对不对(App 埋点里取)
2. 用 ep01 手工 curl 确认:`curl -X POST https://servhub-ep01.future.jetsentv.com/IPTVPortalInterface/content/getcontentlist.do -H "Content-Type: application/json" -d '{"channelid":"001","contentcode":"xxx","portalcode":"PCODE-JC","sign":"...","sptoken":"9006874392099a89506142c6df9e3314","timeshift":"..."}'`
3. 如果 ep01 有、ep03 没有 → 后端 JetsenMediaConfig.baseUrl 被误改回 ep03 了
4. 如果两边都没有 → contentcode 不是橘视厅原生的,可能是 App 本地别名/运营配置的
**SDK init 失败 / 播放鉴权失败**
1. 确认橘视厅 API 走的是 `api.future.jetsentv.com`(不走 servhub)
2. thirdCardNo 派生:`thirdCardNo + "_bul_" + businessLine`
3. businessLine = `4100450011381755998420012`(代销模式用的)
**激活失败 "设备不存在"**
1. 发卡后异步激活必须等事务提交再触发(TransactionSynchronization.afterCommit)
2. 重试任务 `dayCardActivateRetryTask` 每 5 分钟执行,已覆盖伙伴代销卡(无 orderNo 的也能重激)