public static bool GetUnionIdFromOpen(string openId, string accsess_token, out string unionId, out string errMsg) { unionId = string.Empty; errMsg = string.Empty; if (XCCloudUnionIDBusiness.GetUnionID(openId, out unionId)) { //如果缓存中存在访问unionId,直接返回缓存的unionId return(true); } else { //获取用户基本信息 string url = "https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}"; url = string.Format(url, accsess_token, openId); string list = Utils.WebClientDownloadString(url); Dictionary <string, object> dict = new Dictionary <string, object>(); if (WeiXinJsonHelper.GetResponseJsonResult(list, ref dict)) { if (dict.ContainsKey("errcode")) { errMsg = dict["errmsg"].ToString(); return(false); } unionId = dict["unionid"].ToString(); return(true); } else { errMsg = "获取用户基本信息出错"; return(false); } } }
public static bool GetUnionId(string openId, out string unionId, out string errMsg) { unionId = string.Empty; errMsg = string.Empty; if (XCCloudUnionIDBusiness.GetUnionID(openId, out unionId)) { //如果缓存中存在访问unionId,直接返回缓存的unionId return(true); } else { //获取用户基本信息 string access_token = string.Empty; if (TokenMana.GetAccessToken(out access_token)) { string url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}"; url = string.Format(url, access_token, openId); string list = Utils.WebClientDownloadString(url); Dictionary <string, object> dict = new Dictionary <string, object>(); if (WeiXinJsonHelper.GetResponseJsonResult(list, ref dict)) { if (dict.ContainsKey("errcode")) { errMsg = dict["errmsg"].ToString(); return(false); } if (dict["subscribe"].ToString().Equals("0")) { errMsg = "该用户未关注微信公众号"; return(false); } unionId = dict["unionid"].ToString(); XCCloudUnionIDBusiness.SetUnionID(openId, unionId); return(true); } else { errMsg = "获取用户基本信息出错"; return(false); } } else { errMsg = "获取微信令牌出错"; return(false); } } }