From afc0f2519273f476e7e0db08a7594315a876814d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=BD=87=E9=98=B3?= Date: Wed, 27 Sep 2023 09:57:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1=E9=80=9A?= =?UTF-8?q?=E4=BF=A1=E4=B8=BB=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 24Hour/Program.cs | 11 +++++-- 24Hour/WechatMessagerClient.cs | 57 ++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 24Hour/WechatMessagerClient.cs diff --git a/24Hour/Program.cs b/24Hour/Program.cs index 6a24efa..e992b0c 100644 --- a/24Hour/Program.cs +++ b/24Hour/Program.cs @@ -16,9 +16,10 @@ using Quartz.Spi; using Microsoft.IdentityModel.Logging; using System.Collections.Specialized; using System.Runtime.InteropServices; - +using _24Hour; + #region builder - + var builder = WebApplication.CreateBuilder(args); var Configuration = builder.Configuration; @@ -152,6 +153,12 @@ builder.Services.AddAuthentication(options => }).AddScheme(nameof(ResponseAuthenticationHandler), o => { }); + +builder.Services.AddHttpClient(opt => +{ + opt.BaseAddress = new Uri("https://api.weixin.qq.com/sns"); +}); + //builder.Services.AddAuthorization(); builder.Services.AddHttpContextAccessor(); builder.Services.AddScoped(); diff --git a/24Hour/WechatMessagerClient.cs b/24Hour/WechatMessagerClient.cs new file mode 100644 index 0000000..092837f --- /dev/null +++ b/24Hour/WechatMessagerClient.cs @@ -0,0 +1,57 @@ +using com.sun.org.apache.bcel.@internal.generic; +using com.sun.xml.@internal.xsom; +using Elight.Utility; +using Elight.Utility.Code; +using Newtonsoft.Json; + +namespace _24Hour +{ + + public class WechatMessagerClient + { + private readonly HttpClient httpCliet; + public WechatMessagerClient(HttpClient _httpCliet) + { + this.httpCliet = _httpCliet; + + httpCliet.DefaultRequestHeaders.Add("Accept", "application/json"); + httpCliet.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample"); + httpCliet.DefaultRequestHeaders.ConnectionClose = true; + } + + /// + /// 小程序AppID + /// + private const string appid = "wx48108a0c98a3dab0"; + /// + /// 小程序secretID + /// + private const string secid = "e752e4fba67526eca21313a18c96a58f"; + public async Task GetOpenId(string code) + { + var ret = new Result(); + var reponse = await httpCliet.GetAsync($"/sns/jscode2session?appid={appid}&secret={secid}&js_code={code}&grant_type=authorization_code"); + var opendata = await reponse.EnsureSuccessStatusCode().Content.ReadAsStringAsync(); + 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; + } + + } +}