You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.8 KiB
58 lines
1.8 KiB
2 years ago
|
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;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|