fix(admin): 平台推送地址优先回显已配置的公网域名

- 引入 resolveDouyinMashidaPublicOrigin 从已配置的 claimLinkBase/certLink 提取公网域名
- 更新后台面板 message_url 展示逻辑,即使从 localhost 访问也清晰呈现已配置的公网推送地址
- 向平台订阅推送时使用已解析的公网域名,避免错误推送 localhost
- 补充前端单元测试并通过全量构建校验
This commit is contained in:
yml2213
2026-10-10 20:18:23 +08:00
parent fa1a67a03d
commit 73de90ea4f
3 changed files with 75 additions and 11 deletions
+21
View File
@@ -47,6 +47,27 @@ export function buildDouyinMashidaMessageUrl(origin: string): string {
return `${normalized}/api/v1/open/douyin-mashida/message`
}
/**
* 从已配置的 claimLinkBase 或 certLink 中提取公网 origin,未配置时回退到 fallbackOrigin。
* 例:`https://nonsecretly-posttracheal-amado.ngrok-free.dev/h5` → `https://nonsecretly-posttracheal-amado.ngrok-free.dev`
*/
export function resolveDouyinMashidaPublicOrigin(
claimLinkBase?: string,
certLink?: string,
fallbackOrigin = 'http://localhost',
): string {
const candidate = String(claimLinkBase || certLink || '').trim()
if (candidate && /^https?:\/\//i.test(candidate)) {
try {
const url = new URL(candidate)
return url.origin
} catch {
// 容错
}
}
return fallbackOrigin
}
/**
* 返回缺失项的中文名数组,顺序固定为:接入开关 / 商户uid / 用户秘钥 / 兑换链接。
* 全齐时返回空数组。