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);
|
String encryptData = encrypt(publicKeyStr, plainData);
|
||||||
System.out.println("加密后的encryptData为:" + encryptData);
|
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
|
+ "?timestamp=" + timestamp
|
||||||
+ "&nonce=" + nonce
|
+ "&nonce=" + nonce
|
||||||
+ "&serviceComboCode=1100121010200492753300170";
|
+ "&serviceComboCode=1100121010200492753300170";
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
|
|||||||
public class JetsenMediaConfig {
|
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";
|
private String pathPrefix = "/IPTVPortalInterface";
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ renren:
|
|||||||
# 橘视厅媒资接口配置(对应 Android 端 ApiConfig.kt)
|
# 橘视厅媒资接口配置(对应 Android 端 ApiConfig.kt)
|
||||||
jetsen:
|
jetsen:
|
||||||
media:
|
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}
|
path-prefix: ${JETSEN_MEDIA_PATH_PREFIX:/IPTVPortalInterface}
|
||||||
sp-token: ${JETSEN_MEDIA_SP_TOKEN:9006874392099a89506142c6df9e3314}
|
sp-token: ${JETSEN_MEDIA_SP_TOKEN:9006874392099a89506142c6df9e3314}
|
||||||
portal-code: ${JETSEN_MEDIA_PORTAL_CODE:PCODE-JC}
|
portal-code: ${JETSEN_MEDIA_PORTAL_CODE:PCODE-JC}
|
||||||
|
|||||||
Reference in New Issue
Block a user