Пример #1
0
        /// <summary>
        /// 获取并缓存access_token
        /// </summary>
        /// <returns></returns>
        public string Get_access_token()
        {
            string url       = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", WeiPay.PayConfig.AppId, WeiPay.PayConfig.AppSecret);
            string returnStr = WeiPay.HttpUtil.Send("", url);

            WeiPay.OpenModel obj = new WeiPay.OpenModel();
            try
            {
                obj = Newtonsoft.Json.JsonConvert.DeserializeObject <WeiPay.OpenModel>(returnStr);
            }
            catch (Exception e)
            {
                WeiPay.LogUtil.WriteLogWx("obj转换错误(Get_access_token)" + e.Message);
            }
            if (HttpRuntime.Cache["access_token"] == null)
            {
                HttpRuntime.Cache.Insert("access_token", obj.access_token);
                //HttpRuntime.Cache与HttpContext.Current.Cache是同一对象,建议使用HttpRuntime.Cache
            }
            else
            {
                HttpRuntime.Cache.Remove("access_token");
                HttpRuntime.Cache.Insert("access_token", obj.access_token);
            }
            WeiPay.LogUtil.WriteLogWx("一般access_token:" + HttpRuntime.Cache["access_token"].ToString());
            return(HttpRuntime.Cache["access_token"].ToString());
        }
Пример #2
0
        /// <summary>
        /// 更新用户信息
        /// </summary>
        /// <param name="openid"></param>
        private void UpdateOpenID(string openid)
        {
            string AccessToken = string.Empty;

            if (HttpRuntime.Cache["access_token"] == null)
            {
                AccessToken = Get_access_token();
            }
            else
            {
                AccessToken = HttpRuntime.Cache["access_token"].ToString();
            }
            string url       = string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN", AccessToken, openid);
            string returnStr = WeiPay.HttpUtil.Send("", url);

            WeiPay.OpenModel obj = new WeiPay.OpenModel();
            try
            {
                obj = Newtonsoft.Json.JsonConvert.DeserializeObject <WeiPay.OpenModel>(returnStr);
            }
            catch (Exception e)
            {
                WeiPay.LogUtil.WriteLogWx("obj转换错误(UpdateOpenID)" + e.Message + ";  returnStr:" + returnStr);
            }
            //已经注册,修改一下
            if (mb.MemberUpdate(openid, obj.nickname, obj.sex, obj.headimgurl))
            {
                WeiPay.LogUtil.WriteLogWx("关注的时候,修改信息成功");
            }
            else
            {
                WeiPay.LogUtil.WriteLogWx("关注的时候,修改信息失败");
            }
        }