From b76f7fac55bc9b04e5c8c647fbebb4720f7c1afe Mon Sep 17 00:00:00 2001 From: MSuMshk <2039814060@qq.com> Date: Tue, 10 Mar 2026 10:18:08 +0800 Subject: [PATCH] fix: decode encoded mini customer headers --- .../Controllers/OrdersController.cs | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/Api/TakeoutSaaS.MiniApi/Controllers/OrdersController.cs b/src/Api/TakeoutSaaS.MiniApi/Controllers/OrdersController.cs index fe3c853..bb7f507 100644 --- a/src/Api/TakeoutSaaS.MiniApi/Controllers/OrdersController.cs +++ b/src/Api/TakeoutSaaS.MiniApi/Controllers/OrdersController.cs @@ -82,6 +82,34 @@ public sealed class OrdersController(IMiniAppService miniAppService, ITenantProv private string ResolveCustomerName() { - return Request.Headers.TryGetValue("X-Mini-Customer-Name", out var name) ? name.FirstOrDefault()?.Trim() ?? string.Empty : string.Empty; + if (!Request.Headers.TryGetValue("X-Mini-Customer-Name", out var name)) + { + return string.Empty; + } + + return DecodeHeaderValue(name.FirstOrDefault()); + } + + private static string DecodeHeaderValue(string? value) + { + if (string.IsNullOrWhiteSpace(value)) + { + return string.Empty; + } + + var trimmed = value.Trim(); + if (!trimmed.Contains('%')) + { + return trimmed; + } + + try + { + return Uri.UnescapeDataString(trimmed); + } + catch + { + return trimmed; + } } }