From bf2d7fa8402e5bec22a567ace2581380559d8faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=BD=87=E9=98=B3?= Date: Fri, 22 Sep 2023 15:21:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1openid?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=8F=8Acode=3D>openid=3D>login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 24Hour/Controllers/LoginController.cs | 65 +++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/24Hour/Controllers/LoginController.cs b/24Hour/Controllers/LoginController.cs index a0aa5fa..2476d12 100644 --- a/24Hour/Controllers/LoginController.cs +++ b/24Hour/Controllers/LoginController.cs @@ -26,7 +26,7 @@ namespace _24Hour.Controllers /// /// 登录 /// - [HiddenApi] + // [HiddenApi] [ApiController] [Route("api/APP")] public class LoginController : ControllerBase @@ -301,7 +301,28 @@ namespace _24Hour.Controllers LogService.WriteLog(ex, "登录"); } return ret; - } + } + + /// + /// 微信Code 登陆 + /// + /// + /// + [HttpGet] + [Route("WeChatLoginCode")] + public async Task WeChatLoginByCode(string code) + { + var opendata = await GetOpenId(code); + if (opendata.IsSucceed==true) + { + return WeChatLogin(opendata.result); + } + else + { + return opendata; + } + } + /// /// 微信授权登录 @@ -389,7 +410,8 @@ namespace _24Hour.Controllers { try { - var data = await _db.Queryable().Where(q => q.phone == UserModel.phone).FirstAsync(); + + var data = await _db.Queryable().Where(q => q.phone == UserModel.phone && q.IsDeleted == 0).FirstAsync(); if (UserModel.identity == "律师") { if (data != null && (data.identity != "律师" || data.audit == 0)) @@ -582,6 +604,43 @@ namespace _24Hour.Controllers } return ret; } + /// + /// 小程序AppID + /// + private const string appid = "wx48108a0c98a3dab0"; + /// + /// 小程序secretID + /// + private const string secid = "e752e4fba67526eca21313a18c96a58f"; + /// + /// 获取微信openid + /// + /// + /// + [HttpGet("getOpenid")] + public async Task GetOpenId(string code) + { + var opendata = HttpHelper.Get($"https://api.weixin.qq.com/sns/jscode2session?appid={appid}&secret={secid}&js_code={code}&grant_type=authorization_code"); + var data = JsonConvert.DeserializeAnonymousType(opendata, new + { + openid=default(string), + session_key = default(string), + unionid = default(string), + errcode = default(int), + errmsg = default(string), + }); + if (data.errcode==0) + { + ret.IsSucceed = true; + ret.result = data.openid; + } + else + { + ret.IsSucceed = false; + ret.Message = data.errmsg; + } + return ret; + } }