diff --git a/src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs b/src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs index 0745246..92a4bff 100644 --- a/src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs +++ b/src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs @@ -53,14 +53,15 @@ public sealed class TencentMapsController(IConfiguration configuration) : BaseAp ["libraries"] = resolvedLibraries, ["v"] = resolvedVersion }; - var queryString = BuildQueryString(parameters); - var signature = ComputeSignature("/api/gljs", queryString, sk); - var scriptUrl = $"https://map.qq.com/api/gljs?{queryString}&sig={signature}"; + var signatureQuery = BuildQueryString(parameters, encode: false); + var requestQuery = BuildQueryString(parameters, encode: true); + var signature = ComputeSignature("/api/gljs", signatureQuery, sk); + var scriptUrl = $"https://map.qq.com/api/gljs?{requestQuery}&sig={signature}"; return ApiResponse.Ok(new TencentMapScriptResponse(scriptUrl)); } - private static string BuildQueryString(IEnumerable> parameters) + private static string BuildQueryString(IEnumerable> parameters, bool encode) { var builder = new StringBuilder(); foreach (var (key, value) in parameters) @@ -71,7 +72,7 @@ public sealed class TencentMapsController(IConfiguration configuration) : BaseAp } builder.Append(key); builder.Append('='); - builder.Append(Uri.EscapeDataString(value)); + builder.Append(encode ? Uri.EscapeDataString(value) : value); } return builder.ToString(); }