diff --git a/src/SimpleAdmin.Api.IntegrationTests/WeChatRouteIntegrationTests.cs b/src/SimpleAdmin.Api.IntegrationTests/WeChatRouteIntegrationTests.cs index 9a412b6..401dc50 100644 --- a/src/SimpleAdmin.Api.IntegrationTests/WeChatRouteIntegrationTests.cs +++ b/src/SimpleAdmin.Api.IntegrationTests/WeChatRouteIntegrationTests.cs @@ -30,7 +30,9 @@ public class WeChatRouteIntegrationTests await using var host = await SimpleAdminApiTestHost.CreateAsync(configureServices: ConfigureWeChatFallback); host.RoutePatterns.Should().Contain("apiwechat/verification"); - host.RoutePatterns.Should().Contain("wechat/mp/{appId:regex(^wx[A-Za-z0-9]+$)}"); + host.RoutePatterns.Should().Contain(p => + p.StartsWith("wechat/mp/{appId:regex(^wx", StringComparison.Ordinal) + && p.EndsWith("+$)}", StringComparison.Ordinal)); host.RoutePatterns.Should().Contain("wechat/mp/login-qrcode"); host.RoutePatterns.Should().Contain("wechat/oauth/config"); host.RoutePatterns.Should().Contain("wechat/mp/follow-qrcode"); diff --git a/src/SimpleAdmin.Api/Auth/AuthService.WeChatMp.cs b/src/SimpleAdmin.Api/Auth/AuthService.WeChatMp.cs index 914cee0..64bce90 100644 --- a/src/SimpleAdmin.Api/Auth/AuthService.WeChatMp.cs +++ b/src/SimpleAdmin.Api/Auth/AuthService.WeChatMp.cs @@ -73,7 +73,7 @@ public partial class AuthService /// appId 仅匹配 wx 开头,避免 login-qrcode / oauth-config 等静态段落入本路由。 /// [AllowAnonymous] - [HttpGet("/wechat/mp/{appId:regex(^wx[A-Za-z0-9]+$)}")] + [HttpGet("/wechat/mp/{appId:regex(^wx[[a-zA-Z0-9]]+$)}")] [Produces("text/plain")] [ApiExplorerSettings(GroupName = "WeChat")] public async Task WeChatValidateAsync( @@ -121,7 +121,7 @@ public partial class AuthService /// 微信消息/事件推送(明文,XML/JSON)。 /// [AllowAnonymous] - [HttpPost("/wechat/mp/{appId:regex(^wx[A-Za-z0-9]+$)}")] + [HttpPost("/wechat/mp/{appId:regex(^wx[[a-zA-Z0-9]]+$)}")] [Consumes("text/xml", "application/xml", "application/json", "text/plain")] [Produces("text/plain", "application/xml")] [ApiExplorerSettings(GroupName = "WeChat")]