/// <summary> /// 执行获取微信接口调用凭证 /// </summary> /// <param name="request"></param> /// <returns></returns> public T Execute <T>(WeChatModel Model) { sRequestUrl = string.Format(sRequestUrl, Model.sAppId, Model.sAppSecret); string result = HttpHelper.HttpGet(sRequestUrl); T Respone = JsonHelper.Deserialize <T>(result); return(Respone); }
/// <summary> /// 执行获取微信用户OpenId的请求 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <returns></returns> public T Execute<T>(WeChatModel Model) { GetOpenIdByPageAuthorizeModel model = Model as GetOpenIdByPageAuthorizeModel; sRequestUrl = string.Format(sRequestUrl, model.sAppId, model.sAppSecret, model.sCode); string result = HttpHelper.HttpGet(sRequestUrl); T respone = JsonHelper.Deserialize<T>(result); return respone; }
/// <summary> /// 执行创建自定义菜单的请求 /// </summary> /// <param name="request"></param> /// <returns></returns> public T Execute <T>(WeChatModel Model) { CreateAutoMenuModel model = Model as CreateAutoMenuModel; sRequestUrl = string.Format(sRequestUrl, model.sAccessToken); string result = WeChatHttpHelper.HttpPost(sRequestUrl, model.sBody); T Respone = JsonHelper.Deserialize <T>(result); return(Respone); }
/// <summary> /// 执行获取微信用户信息的请求 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <returns></returns> public T Execute <T>(WeChatModel Model) { GetWeChatUserInfoModel model = Model as GetWeChatUserInfoModel; sRequestUrl = string.Format(sRequestUrl, model.sAccessToken, model.sOpenId); string result = HttpHelper.HttpGet(sRequestUrl); T respone = JsonHelper.Deserialize <T>(result); return(respone); }
/// <summary> /// 执行获取调用JS接口的凭证的请求 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <returns></returns> public T Execute <T>(WeChatModel Model) { GetJsApiAccessTokenModel model = Model as GetJsApiAccessTokenModel; sRequestUrl = string.Format(sRequestUrl, model.sAccessToken); string result = HttpHelper.HttpGet(sRequestUrl); T Respone = JsonHelper.Deserialize <T>(result); return(Respone); }
/// <summary> /// 获取微信调用凭证 /// </summary> private static string GetAccessToken(WeChatModel Model) { var model = AccessTokenList.FirstOrDefault(m => m.sAppId == Model.sAppId); if (model == null) { IWeChatRequest request = new GetAccessTokenRequest(); var respone = request.Execute <GetAccessTokenRespone>(Model); if (respone.errcode == 0) { //添加凭证 AccessTokenList.Add(new { sAppId = Model.sAppId, sAppSecret = Model.sAppSecret, dDate = DateTime.Now.AddSeconds(respone.expires_in - 200), sAccessToken = respone.access_token }); } return(respone.access_token); } else { if (Convert.ToDateTime(model.dDate) > DateTime.Now) { return(model.sAccessToken); } else { //凭证过期 更新凭证 IWeChatRequest request = new GetAccessTokenRequest(); var respone = request.Execute <GetAccessTokenRespone>(Model); if (respone.errcode == 0) { //删除之前凭证 AccessTokenList.Remove(model); //添加凭证 AccessTokenList.Add(new { sAppId = Model.sAppId, sAppSecret = Model.sAppSecret, dDate = DateTime.Now.AddSeconds(respone.expires_in - 200), sAccessToken = respone.access_token }); } return(respone.access_token); } } }
/// <summary> /// 执行通过网页授权获取微信用户信息的请求 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <returns></returns> public T Execute <T>(WeChatModel Model) { GetWeChatUserInfoByPageAuthorizeModel model = Model as GetWeChatUserInfoByPageAuthorizeModel; //第一步 获取openid和access_token IWeChatRequest request = new GetOpenIdByPageAuthorizeRequest(); GetOpenIdByPageAuthorizeModel obj = new GetOpenIdByPageAuthorizeModel() { sAppId = model.sAppId, sAppSecret = model.sAppSecret, sCode = model.sCode }; GetOpenIdByPageAuthorizeRespone res = request.Execute <GetOpenIdByPageAuthorizeRespone>(obj); //第二步 拉取用户信息 sRequestUrl = string.Format(sRequestUrl, res.access_token, res.openid); string result = HttpHelper.HttpGet(sRequestUrl); T respone = JsonHelper.Deserialize <T>(result); return(respone); }
/// <summary> /// 执行发送模板消息的请求 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <returns></returns> public T Execute <T>(WeChatModel Model) { SendTemplateInfoModel model = Model as SendTemplateInfoModel; sRequestUrl = string.Format(sRequestUrl, model.sAccessToken); var Data = new { touser = model.sOpenId, template_id = model.sTemplateId, url = model.sUrl, data = model.sBody }; string DataString = JsonHelper.ToJsonString(Data); string result = HttpHelper.HttpPost(sRequestUrl, DataString); T Respone = JsonHelper.Deserialize <T>(result); return(Respone); }