Exemplo n.º 1
0
        /*accesstoken 目前有效时间7200s
         */

        /// <summary>
        /// 获取每次操作微信API的Token访问令牌
        /// </summary>
        /// <param name="appid">应用ID</param>
        /// <param name="secret">开发者凭据</param>
        /// <returns></returns>
        public static WeiXinAccessTokenResult GetAccessToken(string url, string appid, string secret)
        {
            //正常情况下access_token有效期为7200秒,这里使用缓存设置短于这个时间即可
            WeiXinAccessTokenResult access_token = MemoryCacheHelper.GetCacheItem <WeiXinAccessTokenResult>("access_token", delegate()
            {
                WeiXinAccessTokenResult result = new WeiXinAccessTokenResult();
                string jsonStr = HttpGetAccessToken(url, appid, secret);
                if (jsonStr.Contains("errcode"))
                {
                    WeiXinErrorMsg errorResult = new WeiXinErrorMsg();
                    errorResult        = JsonConvert.DeserializeObject <WeiXinErrorMsg>(jsonStr);
                    result.ErrorResult = errorResult;
                    result.Result      = false;
                }
                else
                {
                    WeiXinAccessTokenModel model = new WeiXinAccessTokenModel();
                    model = JsonConvert.DeserializeObject <WeiXinAccessTokenModel>(jsonStr);
                    result.SuccessResult = model;
                    result.Result        = true;
                }
                return(result);
            },
                                                                                                            new TimeSpan(0, 0, 7000)//7000秒过期
                                                                                                            );

            return(access_token);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 通过code获取access_token
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="appSecret"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public static WeiXinAccessTokenResult GetWeiXinAccessToken(string url, string appId, string appSecret, string code)
        {
            //string url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appId + "&secret=" + appSecret +
            //    "&code=" + code + "&grant_type=authorization_code";
            string jsonStr = WebHelper.GetRequestData(url, "");
            WeiXinAccessTokenResult result = new WeiXinAccessTokenResult();

            if (jsonStr.Contains("errcode"))
            {
                WeiXinErrorMsg errorResult = new WeiXinErrorMsg();
                errorResult        = JsonConvert.DeserializeObject <WeiXinErrorMsg>(jsonStr);
                result.ErrorResult = errorResult;
                result.Result      = false;
            }
            else
            {
                WeiXinAccessTokenModel model = new WeiXinAccessTokenModel();
                model = JsonConvert.DeserializeObject <WeiXinAccessTokenModel>(jsonStr);
                result.SuccessResult = model;
                result.Result        = true;
            }
            return(result);
        }