using System.Net.Http; using System.Text.Json; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; namespace AssetManager.Services.Services; public class WechatService { private readonly HttpClient _httpClient; private readonly string _appId; private readonly string _appSecret; public WechatService(HttpClient httpClient, IConfiguration configuration) { _httpClient = httpClient; _appId = configuration["Wechat:AppId"] ?? "wx245f0f3ebcfcf5a7"; _appSecret = configuration["Wechat:AppSecret"] ?? "809c740129bc8b434177ce12ef292dd0"; } public async Task GetOpenIdAsync(string code) { var url = $"https://api.weixin.qq.com/sns/jscode2session?appid={_appId}&secret={_appSecret}&js_code={code}&grant_type=authorization_code"; var response = await _httpClient.GetAsync(url); response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); return JsonSerializer.Deserialize(content) ?? new WechatAuthResult(); } } public class WechatAuthResult { public string? OpenId { get; set; } public string? SessionKey { get; set; } public string? UnionId { get; set; } public int Errcode { get; set; } public string? Errmsg { get; set; } }