Exemplo n.º 1
0
        protected override IDictionary <string, string> GetUserData(string accessToken)
        {
            log.Info("GetUserData");
            const string url = "http://gw.api.taobao.com/router/rest";
            //沙箱环境:http://gw.api.tbsandbox.com/router/rest
            ITopClient myclient = new DefaultTopClient(url, this._clientId, this._clientSecret, "json"); //实例化ITopClient类
            var        req      = new UserSellerGetRequest
            {
                Fields = "nick,user_id,type"
            };                                                              //实例化具体API对应的Request类
            UserSellerGetResponse rsp = myclient.Execute(req, accessToken); //执行API请求并将该类转换为response对象

            log.Info("response:" + rsp.Body);
            try
            {
                var data      = JsonConvert.DeserializeObject <TaobaoResponseData>(rsp.Body);
                var extraData = new Dictionary <string, string>
                {
                    { "id", data.user_seller_get_response.user.user_id },
                    { "name", data.user_seller_get_response.user.nick },
                };
                return(extraData);
            }
            catch (Exception ex)
            {
                log.Error("Deserialize UserData Failed", ex);
                throw;
            }
        }
Exemplo n.º 2
0
 public User GetSellerUserInfo(string sessionKey)
 {
     ITopClient client = new DefaultTopClient(authModel.BaseUrl, authModel.AppKey, authModel.AppSecret);
     UserSellerGetRequest req = new UserSellerGetRequest();
     req.Fields = "user_id,nick,sex";
     UserSellerGetResponse response = client.Execute(req, sessionKey);
     return response.User;
 }
Exemplo n.º 3
0
        /// <summary>
        /// 从淘宝获取订用户信息
        /// </summary>
        /// <param name="AccessToken"></param>
        /// <returns></returns>
        public static Top.Api.Domain.User GetUser(string AccessToken)
        {
            ITopClient           client = new DefaultTopClient(soft.ApiURL, soft.AppKey, soft.AppSecret, "Json");
            UserSellerGetRequest req    = new UserSellerGetRequest();

            req.Fields = "user_id,nick,sex,seller_credit,type,has_more_pic,item_img_num,item_img_size,prop_img_num,prop_img_size,auto_repost,promoted_type,status,alipay_bind,consumer_protection,avatar,liangpin,sign_food_seller_promise,has_shop,is_lightning_consignment,has_sub_stock,is_golden_seller,vip_info,magazine_subscribe,vertical_market,online_gaming";
            UserSellerGetResponse response = client.Execute(req, AccessToken.ToString());

            return(response.User);
        }
Exemplo n.º 4
0
            /// <summary>
            /// 获取当前应用的卖家昵称
            /// </summary>
            /// <returns></returns>
            public string GetUserSeller(Models.UserTaoOAuth taoOAuth)
            {
                ITopClient           client  = new DefaultTopClient(url_api, AppKey, AppSecret);
                UserSellerGetRequest request = new UserSellerGetRequest
                {
                    Fields = "nick",
                };

                return(GetTopResponseBody(client.Execute <UserSellerGetResponse>(request, taoOAuth.access_token)));
            }
Exemplo n.º 5
0
 public static bool LoadSender(string sessionKey,out string error,out Sender sender)
 {
     error = string.Empty;
     sender = new Sender();
     bool isSuccess = false;
     try
     {
         ITopClient client = new DefaultTopClient(Constants.ApiUrl, Constants.AppKey, Constants.AppSecret);
         UserSellerGetRequest req = new UserSellerGetRequest();
         req.Fields = "user_id,sex";
         UserSellerGetResponse response = client.Execute(req, sessionKey);
         sender.User_Id = response.User.UserId;
         sender.Sender_Nick = response.User.Nick;
         isSuccess = true;
     }
     catch (Exception ex)
     {
         error = ex.Message;
     }
     return isSuccess;
 }
Exemplo n.º 6
0
        /// <summary>
        /// 初始信息处理
        /// </summary>
        /// <param name="hasShop"></param>
        public static string  WriteUserInfoToCookies()
        {
            HttpContext context       = HttpContext.Current;
            string      code          = HttpContext.Current.Request.QueryString["code"];
            string      state         = HttpContext.Current.Request.QueryString["state"];
            string      client_id     = appKey;
            string      client_secret = appSecret;
            string      grant_type    = "authorization_code";
            string      redirect_uri  = redirect_URL;
            int         s             = 0;//记录code获取源

            //从数据库获取code
            if (string.IsNullOrEmpty(code))
            {
                DataTable dt = SellersBLL.GetSellersCode(Users.Nick);
                if (dt != null && dt.Rows.Count > 0)
                {
                    s    = 1;
                    code = dt.Rows[0]["code"].ToString();
                }
            }
            #region 获取授权Code
            if (!string.IsNullOrEmpty(code))
            {
                DataTable dt = SellersBLL.GetSellersCode(Users.Nick);
                if (dt != null && dt.Rows.Count > 0 && s == 0)
                {
                    SellersBLL.UpdateSellersCode(Users.Nick, code);
                }
                else if (dt == null || dt.Rows.Count == 0)
                {
                    SellersBLL.AddSellersCode(Users.Nick, code);
                }

                //获取访问令牌
                string url  = "https://oauth.taobao.com/token?client_id={0}&client_secret={1}&grant_type={2}&code={3}&redirect_uri={4}&scope={5}&view={6}&state={7}";
                string urlS = string.Format(url, client_id, client_secret, grant_type, code, redirect_uri, "item", "web", state);
                string getAuthAcessToken = PostDataToUrl(urlS, urlS);
                if (string.IsNullOrEmpty(getAuthAcessToken))
                {
                    return(null);
                }                                                            //20160907 yao c
                IDictionary resultDic = TopUtils.ParseJson(getAuthAcessToken);
                context.Request.Cookies.Clear();
                context.Session.Clear();
                //获取卖家昵称
                string nick = HttpUtility.UrlDecode(resultDic["taobao_user_nick"].ToString(), Encoding.UTF8);
                //这里的SessionKey就是access_token
                string sessionKey = resultDic["access_token"].ToString();
                //获取刷新令牌,以便令牌过期时重新获取
                string     refresh_token = resultDic["refresh_token"].ToString();
                HttpCookie cookie        = new HttpCookie("Top");
                cookie["nick"] = CTCRM.Common.DES.Encrypt(nick);

                UserSellerGetResponse userRsp = null;
                UserSellerGetRequest  req     = null;
                try
                {
                    Sellers sellers = new Sellers();
                    sellers.Nick = nick;
                    try
                    {
                        ITopClient client = TBManager.GetClient();
                        req        = new UserSellerGetRequest();
                        req.Fields = "user_id,type";
                        userRsp    = client.Execute(req, sessionKey);
                    }
                    catch (Exception ex)
                    {
                        userRsp = null;
                    }
                    sellers.Seller_Creadit = 0;//short.Parse(userRsp.User.SellerCredit.Level.ToString());
                    sellers.Seller_Id      = userRsp.User == null? 0: userRsp.User.UserId;
                    sellers.shopType       = userRsp.User == null ? "B" : userRsp.User.Type;
                    sellers.Created        = DateTime.Now;
                    sellers.SessionKey     = sessionKey;
                    sellers.Refresh_token  = refresh_token;
                    sellers.SellerType     = "pay";
                    cookie["SellerId"]     = sellers.Seller_Id.ToString();

                    //获取卖家订购信息
                    ArticleUserSubscribe userSub = UserSubscribe.GetDeadLineDate("ts-1811102", nick);
                    if (userSub != null)
                    {
                        sellers.EndDate = userSub.Deadline.ToString();

                        #region 标准版一月送200条
                        if (userSub.ItemCode.Equals("ts-1811102-1"))
                        {
                            sellers.OrderVersion = "标准版一月送200条";
                        }
                        #endregion
                        #region 自动评价版
                        if (userSub.ItemCode.Equals("ts-1811102-2"))
                        {
                            sellers.OrderVersion = "自动评价版";
                        }
                        #endregion
                        #region 订单打印版
                        if (userSub.ItemCode.Equals("ts-1811102-3"))
                        {
                            sellers.OrderVersion = "订单打印版";
                        }
                        #endregion
                        #region 流量推广_6个广告位
                        if (userSub.ItemCode.Equals("ts-1811102-4"))
                        {
                            sellers.OrderVersion = "流量推广_6个广告位";
                        }
                        #endregion
                        #region 订购一年送3000条短信
                        if (userSub.ItemCode.Equals("ts-1811102-5"))
                        {
                            sellers.OrderVersion = "订购一年送3000条短信";
                        }
                        #endregion
                        cookie["Deadline"]     = userSub.Deadline.ToString();//比如:2016-07-04 00:00:00
                        cookie["OrderVersion"] = CTCRM.Common.DES.Encrypt(sellers.OrderVersion);
                    }

                    SellersDAL objDal = new SellersDAL();
                    if (!SellersDAL.GetList(sellers))
                    {
                        sellers.CreatedDate = DateTime.Now;//记录卖家的第一次登陆系统时间
                        sellers.OrderDate   = DateTime.Now.ToShortDateString();
                        objDal.Add(sellers);

                        if (!objDal.AddSellerRecords(sellers.Nick, sellers.OrderVersion, userSub.Deadline.ToString(), "新订"))
                        {
                            File.WriteAllText(@"D:\log\" + nick + "_订购.txt", "新订失败");
                        }
                    }
                    else
                    {
                        string sellerEndDate = SellersDAL.GetSellerEndDate(nick);
                        sellers.UpdateDate = DateTime.Now;//记录卖家最近一次登陆系统时间
                        File.WriteAllText(@"D:\log\" + nick + "_shijianOld.txt", sellerEndDate);
                        bool sss = SellersDAL.Update(sellers);
                        File.WriteAllText(@"D:\log\" + nick + "_更新.txt", sss.ToString());
                        //判断卖家是否续费软件
                        File.WriteAllText(@"D:\log\" + nick + "_shijianNew.txt", sellers.EndDate);
                        if (sellers.EndDate != sellerEndDate)
                        {
                            if (sellers.OrderVersion == "订购一年送3000条短信")
                            {
                                File.WriteAllText(@"D:\log\" + nick + "_dinggou.txt", sellers.OrderVersion);
                                MsgPackage obj = new MsgPackage();
                                obj.PackageName = "店铺管家短信套餐(淘宝)3000条";
                                obj.Type        = "永久有效";
                                obj.SellerNick  = nick;
                                obj.Price       = 0;
                                obj.PerPrice    = "0";
                                obj.Rank        = "短信套餐(赠送)";
                                obj.OrderDate   = DateTime.Now;
                                obj.PayStatus   = true;
                                bool dingg = MsgBLL.AddMsgPackage(obj);
                                File.WriteAllText(@"D:\log\" + nick + "_tianjia.txt", dingg.ToString());
                                DataTable dtDuanxin = MsgBLL.GetSellerMsgTrans(nick);
                                if (dtDuanxin != null && dtDuanxin.Rows.Count > 0)
                                {
                                    obj.MsgCanUseCount = 3000 + (dtDuanxin.Rows[0]["msgCanUseCount"] == DBNull.Value ? 0 : Convert.ToInt32(dtDuanxin.Rows[0]["msgCanUseCount"]));
                                    obj.MsgTotalCount  = 3000 + (dtDuanxin.Rows[0]["msgTotalCount"] == DBNull.Value ? 0 : Convert.ToInt32(dtDuanxin.Rows[0]["msgTotalCount"]));
                                }
                                else
                                {
                                    obj.MsgCanUseCount = 3000;
                                    obj.MsgTotalCount  = 3000;
                                }
                                obj.ServiceStatus   = true;
                                obj.CanUseStartDate = DateTime.Now;

                                MsgBLL.UpdateMsgTrans(obj);
                            }
                            else
                            {
                                File.WriteAllText(@"D:\log\" + nick + "_dinggou.txt", sellers.OrderVersion);
                                MsgPackage obj = new MsgPackage();
                                obj.PackageName = "店铺管家短信套餐(淘宝)200条";
                                obj.Type        = "永久有效";
                                obj.SellerNick  = nick;
                                obj.Price       = 0;
                                obj.PerPrice    = "0";
                                obj.Rank        = "短信套餐(赠送)";
                                obj.OrderDate   = DateTime.Now;
                                obj.PayStatus   = true;
                                bool dingg = MsgBLL.AddMsgPackage(obj);
                                File.WriteAllText(@"D:\log\" + nick + "_tianjia.txt", dingg.ToString());
                                DataTable dtDuanxin = MsgBLL.GetSellerMsgTrans(nick);
                                if (dtDuanxin != null && dtDuanxin.Rows.Count > 0)
                                {
                                    obj.MsgCanUseCount = 200 + (dtDuanxin.Rows[0]["msgCanUseCount"] == DBNull.Value ? 0 : Convert.ToInt32(dtDuanxin.Rows[0]["msgCanUseCount"]));
                                    obj.MsgTotalCount  = 200 + (dtDuanxin.Rows[0]["msgTotalCount"] == DBNull.Value ? 0 : Convert.ToInt32(dtDuanxin.Rows[0]["msgTotalCount"]));
                                }
                                else
                                {
                                    obj.MsgCanUseCount = 200;
                                    obj.MsgTotalCount  = 200;
                                }
                                obj.ServiceStatus   = true;
                                obj.CanUseStartDate = DateTime.Now;

                                MsgBLL.UpdateMsgTrans(obj);
                            }

                            if (!objDal.AddSellerRecords(sellers.Nick, sellers.OrderVersion, userSub.Deadline.ToString(), "续订"))
                            {
                                File.WriteAllText(@"D:\log\" + nick + "_订购.txt", "续订失败");
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //ExceptionReporter.WriteLog(userRsp.ErrMsg, ex, ExceptionPostion.TopApi, ExceptionRank.urgency);
                }
                cookie["sess"] = sessionKey;
                cookie.Expires = DateTime.Now.AddDays(1d);
                context.Response.Cookies.Add(cookie);
                return("1");
            }
            else   //Code为空的情况下
            {
                return("0");
            }
            #endregion
        }