From 79e15fdeb140e8e6a016ca73e74e891870aed14d Mon Sep 17 00:00:00 2001 From: jianweie code Date: Wed, 19 Jun 2024 10:33:02 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=8F=AF=E8=83=BD=E5=AD=98=E5=9C=A8=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=A4=9A=E4=B8=AA=E5=BE=AE=E4=BF=A1=E5=8F=B7?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E4=B8=80=E4=B8=AA=E6=89=8B=E6=9C=BA=E5=8F=B7?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E5=AF=BC=E8=87=B4openid=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E8=80=8C=E6=94=AF=E4=BB=98=E6=8F=90=E7=A4=BA=E3=80=90=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E8=B4=A6=E5=8F=B7=E4=B8=8E=E6=94=AF=E4=BB=98=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E4=B8=8D=E4=B8=80=E8=87=B4=EF=BC=8C=E8=AF=B7=E6=A0=B8?= =?UTF-8?q?=E5=AE=9E=E5=90=8E=E5=86=8D=E6=94=AF=E4=BB=98=E3=80=91=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CoreCms.Net.Auth/HttpContextUser/AspNetUser.cs | 1 + CoreCms.Net.Auth/HttpContextUser/IHttpContextUser.cs | 1 + CoreCms.Net.Services/Pay/WeChatPayServices.cs | 9 ++++++++- CoreCms.Net.Web.WebApi/Controllers/UserController.cs | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CoreCms.Net.Auth/HttpContextUser/AspNetUser.cs b/CoreCms.Net.Auth/HttpContextUser/AspNetUser.cs index 9538aa15..f6710185 100644 --- a/CoreCms.Net.Auth/HttpContextUser/AspNetUser.cs +++ b/CoreCms.Net.Auth/HttpContextUser/AspNetUser.cs @@ -29,6 +29,7 @@ namespace CoreCms.Net.Auth.HttpContextUser public string Name => _accessor.HttpContext.User.Identity.Name; public int ID => GetClaimValueByType("jti").FirstOrDefault().ObjectToInt(); + public string OpenId => GetClaimValueByType("nameid").FirstOrDefault(); public bool IsAuthenticated() { diff --git a/CoreCms.Net.Auth/HttpContextUser/IHttpContextUser.cs b/CoreCms.Net.Auth/HttpContextUser/IHttpContextUser.cs index a43f72ff..150595b0 100644 --- a/CoreCms.Net.Auth/HttpContextUser/IHttpContextUser.cs +++ b/CoreCms.Net.Auth/HttpContextUser/IHttpContextUser.cs @@ -19,6 +19,7 @@ namespace CoreCms.Net.Auth.HttpContextUser { string Name { get; } int ID { get; } + string OpenId { get; } bool IsAuthenticated(); IEnumerable GetClaimsIdentity(); List GetClaimValueByType(string ClaimType); diff --git a/CoreCms.Net.Services/Pay/WeChatPayServices.cs b/CoreCms.Net.Services/Pay/WeChatPayServices.cs index 8a34fbf7..5b928667 100644 --- a/CoreCms.Net.Services/Pay/WeChatPayServices.cs +++ b/CoreCms.Net.Services/Pay/WeChatPayServices.cs @@ -121,8 +121,15 @@ namespace CoreCms.Net.Services return jm; } + if (!string.IsNullOrEmpty(_user.OpenId) && _user.OpenId != user.openid) + { + openId = _user.OpenId; + } + else + { + openId = user.openid; + } - openId = user.openid; } var notifyUrl = config.notifyUrl.EndsWith("/") ? config.notifyUrl + "m-" + config.appId : config.notifyUrl + "/m-" + config.appId; diff --git a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs index ab32041a..d6f86144 100644 --- a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs +++ b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs @@ -248,6 +248,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers var claims = new List { new Claim(ClaimTypes.Name, user.nickName), new Claim(JwtRegisteredClaimNames.Jti, user.id.ToString()), + new Claim(JwtRegisteredClaimNames.NameId, response.OpenId), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_permissionRequirement.Expiration.TotalSeconds).ToString(CultureInfo.InvariantCulture)) }; //用户标识