From e5654e9b7ccf2ad6ff9fc191238fd22588e04003 Mon Sep 17 00:00:00 2001 From: zhx Date: Mon, 29 Jun 2026 19:14:31 +0800 Subject: [PATCH] fix zgame webview launch mode --- services/game-service/internal/service/game/service.go | 9 ++++++++- .../game-service/internal/service/game/service_test.go | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/services/game-service/internal/service/game/service.go b/services/game-service/internal/service/game/service.go index 9a846780..ebd1d084 100644 --- a/services/game-service/internal/service/game/service.go +++ b/services/game-service/internal/service/game/service.go @@ -995,13 +995,20 @@ func buildLaunchURL(game gamedomain.LaunchableGame, session gamedomain.LaunchSes return parsed.String(), nil } if strings.EqualFold(game.AdapterType, gamedomain.AdapterZGameV1) { - // ZGame 前端初始化认证先读 token,桥接 login 再读 js_code/code/session;四个别名必须指向同一个短期启动令牌。 + // ZGame 默认 channelName=zgame_demo 会走 iframe parent postMessage;App WebView 必须切到 wh 模式,让 SDK 从 URL 读取 openId/js_code。 + // token/code/js_code/session 四个别名仍指向同一个短期启动令牌,兼容厂商不同入口读取字段。 config := zgameConfigFromPlatform(game) openID := externalUserID(session, config.UIDMode) + query.Set("channelName", "wh") + query.Set("channel_name", "wh") + query.Set("cv", "Android") query.Set("openId", openID) query.Set("open_id", openID) query.Set("userId", openID) query.Set("uid", openID) + query.Set("userName", openID) + query.Set("user_name", openID) + query.Set("balance", "0") query.Set("token", token) query.Set("code", token) query.Set("js_code", token) diff --git a/services/game-service/internal/service/game/service_test.go b/services/game-service/internal/service/game/service_test.go index 60e28809..daace3d8 100644 --- a/services/game-service/internal/service/game/service_test.go +++ b/services/game-service/internal/service/game/service_test.go @@ -599,10 +599,16 @@ func TestLaunchGameBuildsZGameURL(t *testing.T) { t.Fatalf("zgame launch url must use per-game configured url: %s", result.LaunchURL) } expected := map[string]string{ + "channelName": "wh", + "channel_name": "wh", + "cv": "Android", "openId": "420001", "open_id": "420001", "userId": "420001", "uid": "420001", + "userName": "420001", + "user_name": "420001", + "balance": "0", "token": token, "code": token, "js_code": token,