/// <summary> /// 获取微信小程序用户信息 /// </summary> /// <param name="param"></param> /// <returns></returns> public async Task <IResultModel <WechatDetails <Watermark> > > GetUserInfo(WechatMiniAuthParam param) { ResultModel <WechatDetails <Watermark> > resultModel = new ResultModel <WechatDetails <Watermark> >(); var url = $"{Code2SessionUrl}?appid={param.AppId}&secret={param.AppSecret}&js_code={param.Code}&grant_type=authorization_code"; var httpClient = new HttpClient(); var content = await httpClient.GetStringAsync(url); if (string.IsNullOrWhiteSpace(content)) { return(resultModel.Failed("参数有误")); } var result = JsonConvert.DeserializeObject <Code2SessionGetResult>(content); if (result.ErrCode != 0) { return(resultModel.Failed(result.ErrMessage)); } WechatDetails <Watermark> wechardetails = DeserializeWechatMiniInfo(result.SessionKey, param.Iv, param.EncryptedData); wechardetails.watermark.openid = result.OpenId; return(resultModel.Success(wechardetails)); }
/// <summary> /// 获取小程序关联的OpenId /// </summary> /// <param name="param"></param> /// <returns></returns> public async Task <IResultModel <string> > GetOpenId(WechatMiniAuthParam param) { ResultModel <string> resultModel = new ResultModel <string>(); var url = $"{Code2SessionUrl}?appid={param.AppId}&secret={param.AppSecret}&js_code={param.Code}&grant_type=authorization_code"; var httpClient = new HttpClient(); var content = await httpClient.GetStringAsync(url); if (string.IsNullOrWhiteSpace(content)) { return(resultModel.Failed("参数有误")); } var result = JsonConvert.DeserializeObject <Code2SessionGetResult>(content); if (result.ErrCode != 0) { return(resultModel.Failed(result.ErrMessage)); } return(resultModel.Success(result.OpenId)); }