/// <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; 
 }
Пример #3
0
        /// <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);
        }
Пример #6
0
        /// <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);
                }
            }
        }
Пример #7
0
        /// <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);
        }