Browse Source

添加微信通信主机

develop-lawyerExampaper
胡超1 2 years ago
parent
commit
afc0f25192
  1. 7
      24Hour/Program.cs
  2. 57
      24Hour/WechatMessagerClient.cs

7
24Hour/Program.cs

@ -16,6 +16,7 @@ using Quartz.Spi;
using Microsoft.IdentityModel.Logging; using Microsoft.IdentityModel.Logging;
using System.Collections.Specialized; using System.Collections.Specialized;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using _24Hour;
#region builder #region builder
@ -152,6 +153,12 @@ builder.Services.AddAuthentication(options =>
}).AddScheme<AuthenticationSchemeOptions, ResponseAuthenticationHandler>(nameof(ResponseAuthenticationHandler), o => { }); }).AddScheme<AuthenticationSchemeOptions, ResponseAuthenticationHandler>(nameof(ResponseAuthenticationHandler), o => { });
builder.Services.AddHttpClient<WechatMessagerClient>(opt =>
{
opt.BaseAddress = new Uri("https://api.weixin.qq.com/sns");
});
//builder.Services.AddAuthorization(); //builder.Services.AddAuthorization();
builder.Services.AddHttpContextAccessor(); builder.Services.AddHttpContextAccessor();
builder.Services.AddScoped<WebSocketController>(); builder.Services.AddScoped<WebSocketController>();

57
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;
}
/// <summary>
/// 小程序AppID
/// </summary>
private const string appid = "wx48108a0c98a3dab0";
/// <summary>
/// 小程序secretID
/// </summary>
private const string secid = "e752e4fba67526eca21313a18c96a58f";
public async Task<Result> 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;
}
}
}
Loading…
Cancel
Save