/// <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()); }
/// <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("关注的时候,修改信息失败"); } }