Esempio n. 1
0
        /// <summary>
        /// 设置用户token信息
        /// </summary>
        /// <param name="UserId">用户标识</param>
        /// <param name="AccessToken">token不存在</param>
        private void SetAccessToken(string UserId, string AccessToken, LoggingSessionInfo loggingSessionInfo, string resultErrorUrl)
        {
            try
            {
                if (UserId == null || UserId.Trim().Equals(""))
                {
                    Loggers.Debug(new DebugLogInfo()
                    {
                        Message = string.Format("新浪回调页面2-用户标识为空")
                    });
                }
                Response.Write("设置用户token信息1");
                #region 处理业务
                #region 判断用户是否存在会员表中
                VipBLL    vipServer = new VipBLL(loggingSessionInfo);
                VipEntity vipInfo   = vipServer.GetByID(UserId);
                if (vipInfo == null || vipInfo.VIPID == null || vipInfo.VIPID.Equals(""))
                {
                    vipInfo.VIPID    = UserId;
                    vipInfo.VipCode  = vipServer.GetVipCode();
                    vipInfo.ClientID = loggingSessionInfo.CurrentUser.customer_id;
                    vipInfo.Status   = 1;
                    vipServer.Create(vipInfo);
                }
                #endregion
                #region 判断用户是否存在会员的新浪微博扩展表中
                VipExpandSinaWbBLL    vipSinaWbServer = new VipExpandSinaWbBLL(loggingSessionInfo);
                VipExpandSinaWbEntity vipSinaWbInfo   = new VipExpandSinaWbEntity();
                vipSinaWbInfo = vipSinaWbServer.GetByID(UserId);
                if (vipSinaWbInfo != null && vipSinaWbInfo.VipId != null && !vipSinaWbInfo.VipId.Equals(""))
                {
                    vipSinaWbInfo.AccessToken = AccessToken;
                    vipSinaWbServer.Update(vipSinaWbInfo, false);
                }
                else
                {
                    VipExpandSinaWbEntity vipSinaWbInfo1 = new VipExpandSinaWbEntity();
                    vipSinaWbInfo1.VipId       = UserId;
                    vipSinaWbInfo1.AccessToken = AccessToken;
                    vipSinaWbServer.Create(vipSinaWbInfo1);
                }
                #endregion
                #endregion

                Loggers.Debug(new DebugLogInfo()
                {
                    Message = string.Format("新浪回调页面3-设置用户信息成功.")
                });
            }
            catch (Exception ex)
            {
                Loggers.Debug(new DebugLogInfo()
                {
                    Message = string.Format("新浪回调页面4-错误信息提示 {0}:" + ex.ToString())
                });
                Response.Write(ex.ToString());
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 授权查询
        /// </summary>
        private void GetAccessToken(string UserId, string AccessToken, LoggingSessionInfo loggingSessionInfo, string resultErrorUrl)
        {
            try
            {
                #region 获取授权信息
                var uriString = "https://api.weibo.com/oauth2/get_token_info";

                var postData = "access_token=" + AccessToken + "";
                Loggers.Debug(new DebugLogInfo()
                {
                    Message = string.Format("支付跳转-链接字符串: {0}", postData)
                });
                WebClient myWebClient = new WebClient();
                // 注意这种拼字符串的ContentType
                myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
                // 转化成二进制数组
                byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                // 上传数据,并获取返回的二进制数据.
                byte[] responseArray = myWebClient.UploadData(uriString, "POST", byteArray);
                var    data          = System.Text.Encoding.UTF8.GetString(responseArray);
                var    tokenInfo     = data.DeserializeJSONTo <TokenInfo>();
                if (tokenInfo == null)
                {
                    Loggers.Debug(new DebugLogInfo()
                    {
                        Message = string.Format("授权查询3-授权成功--但是没有返回信息:" + data.ToString())
                    });
                    return;
                }
                #endregion
                #region 更新授权信息
                VipExpandSinaWbBLL    vipSinaWbServer = new VipExpandSinaWbBLL(loggingSessionInfo);
                VipExpandSinaWbEntity vipSinaWbInfo   = new VipExpandSinaWbEntity();
                vipSinaWbInfo = vipSinaWbServer.GetByID(UserId);
                if (vipSinaWbInfo != null && vipSinaWbInfo.VipId != null && !vipSinaWbInfo.VipId.Equals(""))
                {
                    vipSinaWbInfo.AccessToken = AccessToken;
                    if (tokenInfo != null)
                    {
                        vipSinaWbInfo.UID      = ToStr(tokenInfo.uid);
                        vipSinaWbInfo.Appkey   = ToStr(tokenInfo.appkey);
                        vipSinaWbInfo.Scope    = ToStr(tokenInfo.scope);
                        vipSinaWbInfo.CreateAt = ToStr(tokenInfo.create_at);
                        vipSinaWbInfo.ExpireIn = ToStr(tokenInfo.expire_in);
                    }
                    vipSinaWbServer.Update(vipSinaWbInfo, false);
                }
                else
                {
                    VipExpandSinaWbEntity vipSinaWbInfo1 = new VipExpandSinaWbEntity();
                    vipSinaWbInfo1.VipId = UserId;
                    if (tokenInfo != null)
                    {
                        vipSinaWbInfo1.UID      = ToStr(tokenInfo.uid);
                        vipSinaWbInfo1.Appkey   = ToStr(tokenInfo.appkey);
                        vipSinaWbInfo1.Scope    = ToStr(tokenInfo.scope);
                        vipSinaWbInfo1.CreateAt = ToStr(tokenInfo.create_at);
                        vipSinaWbInfo1.ExpireIn = ToStr(tokenInfo.expire_in);
                    }
                    vipSinaWbServer.Create(vipSinaWbInfo1);
                }
                #endregion

                Loggers.Debug(new DebugLogInfo()
                {
                    Message = string.Format("授权查询3-授权成功:")
                });
                //设置新浪微博用户信息
                GetUserInfo(UserId, AccessToken, loggingSessionInfo, ToStr(tokenInfo.uid));
            }
            catch (Exception ex) {
                Loggers.Debug(new DebugLogInfo()
                {
                    Message = string.Format("授权查询4-错误信息提示 {0}:" + ex.ToString())
                });
                Response.Write(ex.ToString());
            }
        }