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.
57 lines
1.8 KiB
57 lines
1.8 KiB
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; |
|
} |
|
|
|
} |
|
}
|
|
|