From 73c34ddefe7d1df6bede54760195e419af224b4f Mon Sep 17 00:00:00 2001 From: zhaogd Date: Sat, 26 Sep 2026 14:28:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A9=98=E8=A7=86=E5=8E=85=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=9C=B0=E5=9D=80=E5=AF=B9=E9=BD=90=20release=20App?= =?UTF-8?q?=20=E7=8E=B0=E7=BD=91=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 媒资接口 servhub-ep03 → servhub-ep01(ep03 媒资滞后,新片查不到、片名错位) - 登录接口 external(预发布) → api.future.jetsentv.com(现网) - 新增 JST-INTERFACE-REFERENCE.md 接口排查手册 --- JST-INTERFACE-REFERENCE.md | 126 ++++++++++++++++++ src/main/java/io/as/common/utils/RsaUtil.java | 2 +- .../media/config/JetsenMediaConfig.java | 2 +- src/main/resources/application.yml | 2 +- 4 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 JST-INTERFACE-REFERENCE.md diff --git a/JST-INTERFACE-REFERENCE.md b/JST-INTERFACE-REFERENCE.md new file mode 100644 index 0000000..10668cd --- /dev/null +++ b/JST-INTERFACE-REFERENCE.md @@ -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 的也能重激) diff --git a/src/main/java/io/as/common/utils/RsaUtil.java b/src/main/java/io/as/common/utils/RsaUtil.java index 99a6219..d161e05 100755 --- a/src/main/java/io/as/common/utils/RsaUtil.java +++ b/src/main/java/io/as/common/utils/RsaUtil.java @@ -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"; diff --git a/src/main/java/io/as/modules/media/config/JetsenMediaConfig.java b/src/main/java/io/as/modules/media/config/JetsenMediaConfig.java index aab27f6..689c238 100644 --- a/src/main/java/io/as/modules/media/config/JetsenMediaConfig.java +++ b/src/main/java/io/as/modules/media/config/JetsenMediaConfig.java @@ -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"; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 856d99d..1e789fc 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -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}