Пример #1
0
        //得到用户信息
        public static Tuple <bool, string> GetWechatUserInfo(string code)
        {
            log.AppenLog("得到用户信息:GetWechatUserInfo");
            try
            {
                if (Models.AppConfig.dicUserID.ContainsKey(code))
                {
                    return(new Tuple <bool, string>(true, Models.AppConfig.dicUserID[code]));
                }

                string result = AccessTokenHelper.GetUserIDForCode(code);

                log.AppenLog("result:" + result);
                if (result.Contains("UserId"))
                {
                    result = result.Replace("{", "").Replace("}", "").Replace("{", "\"");

                    string[] strs = result.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    if (strs != null && strs.Length > 0)
                    {
                        strs = strs[0].Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                        if (strs != null && strs.Length > 1)
                        {
                            var v = (from s in Models.AppConfig.dicUserID
                                     where s.Value == strs[1]
                                     select s).ToList();
                            for (int a = v.Count - 1; a >= 0; a--)
                            {
                                Models.AppConfig.dicUserID.Remove(v[a].Key);
                            }
                            Models.AppConfig.dicUserID.Add(code, strs[1]);
                            return(new Tuple <bool, string>(true, strs[1]));
                        }
                    }
                }
                return(new Tuple <bool, string>(false, result));
            }
            catch (Exception ex)
            {
                return(new Tuple <bool, string>(false, ex.Message));
            }
        }