fix: 橘视厅接口地址对齐 release App 现网配置
- 媒资接口 servhub-ep03 → servhub-ep01(ep03 媒资滞后,新片查不到、片名错位) - 登录接口 external(预发布) → api.future.jetsentv.com(现网) - 新增 JST-INTERFACE-REFERENCE.md 接口排查手册
This commit is contained in:
126
JST-INTERFACE-REFERENCE.md
Normal file
126
JST-INTERFACE-REFERENCE.md
Normal 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 的也能重激)
|
||||
@@ -51,7 +51,7 @@ public class RsaUtil {
|
||||
String encryptData = encrypt(publicKeyStr, plainData);
|
||||
System.out.println("加密后的encryptData为:" + encryptData);
|
||||
|
||||
String url = "https://external.future.jetsentv.com/ums_api/api/v1/third/login"
|
||||
String url = "https://api.future.jetsentv.com/ums_api/api/v1/third/login"
|
||||
+ "?timestamp=" + timestamp
|
||||
+ "&nonce=" + nonce
|
||||
+ "&serviceComboCode=1100121010200492753300170";
|
||||
|
||||
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
|
||||
public class JetsenMediaConfig {
|
||||
|
||||
/** 媒资接口基础地址 */
|
||||
private String baseUrl = "https://servhub-ep03.future.jetsentv.com/";
|
||||
private String baseUrl = "https://servhub-ep01.future.jetsentv.com/";
|
||||
|
||||
/** 接口路径前缀 */
|
||||
private String pathPrefix = "/IPTVPortalInterface";
|
||||
|
||||
@@ -83,7 +83,7 @@ renren:
|
||||
# 橘视厅媒资接口配置(对应 Android 端 ApiConfig.kt)
|
||||
jetsen:
|
||||
media:
|
||||
base-url: ${JETSEN_MEDIA_BASE_URL:https://servhub-ep03.future.jetsentv.com/}
|
||||
base-url: ${JETSEN_MEDIA_BASE_URL:https://servhub-ep01.future.jetsentv.com/}
|
||||
path-prefix: ${JETSEN_MEDIA_PATH_PREFIX:/IPTVPortalInterface}
|
||||
sp-token: ${JETSEN_MEDIA_SP_TOKEN:9006874392099a89506142c6df9e3314}
|
||||
portal-code: ${JETSEN_MEDIA_PORTAL_CODE:PCODE-JC}
|
||||
|
||||
Reference in New Issue
Block a user