Example #1
0
        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);
                }
            }
        }
Example #2
0
        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);
                }
            }
        }