Exemplo n.º 1
0
        /// <summary>
        /// 如果OpenId存在不处理,不存在新增,生成令牌写入缓存,返回到客户端
        /// </summary>
        public Jscode2sessionResult createResult(string result)
        {
            var obj = JObject.Parse(result);
            Jscode2sessionResult j2sRes = new Jscode2sessionResult();

            if (obj["openid"] == null)
            {
                return(null);
            }
            j2sRes.openid      = obj["openid"] == null ? "" : obj["openid"].ToString();
            j2sRes.session_key = obj["session_key"] == null ? "" : obj["session_key"].ToString();
            j2sRes.unionid     = obj["unionid"] == null ? "" : obj["unionid"].ToString();
            j2sRes.errcode     = obj["errcode"] == null ? "" : obj["errcode"].ToString();
            j2sRes.errmsg      = obj["errmsg"] == null ? "" : obj["errmsg"].ToString();
            return(j2sRes);
        }
Exemplo n.º 2
0
        public string getToken(string js_code)
        {
            string context = string.Format("appid={0}&secret={1}&js_code={2}&grant_type=authorization_code", base.WxAppId, base.WxSecret, js_code);
            string url     = base.WxTokenApiUrl;
            string res     = HttpHelper.RequestUrl(url, context);

            //判断返回值
            Jscode2sessionResult j2sRes = createResult(res);

            //如果返回值正常,更新OpenID
            if (j2sRes != null)
            {
                user u = _userService.grantToken(j2sRes);
                UserID = u.id.ToString();
                res    = prepareCachedValue(res, u.id.ToString(), ScopeEnums.User);
            }
            return(res);
        }
Exemplo n.º 3
0
 public user grantToken(Jscode2sessionResult j2sResult)
 {
     using (var db = base.getDatabase())
     {
         var nowuser = db.FirstOrDefault <user>("where openid=@0", j2sResult.openid);
         if (nowuser == null)
         {
             user u = new user()
             {
                 openid      = j2sResult.openid,
                 create_time = DateTime.Now
             };
             user newuser = (user)db.Insert("user", u);
             return(newuser);
         }
         else
         {
             return(nowuser);
         }
     }
 }