/// <summary>
 /// 向服务器发送post请求 返回服务器数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="reqName">接口名 /xxx/init</param>
 /// <param name="formFields">The form fields.</param>
 /// <param name="OnError">The on error.</param>
 /// <returns>T.</returns>
 public static T Post <T>(string reqName, Dictionary <string, string> formFields, Action <ResultModel> OnError = null)
 {
     try
     {
         if (formFields == null)
         {
             formFields = new Dictionary <string, string>();
         }
         formFields["timestamp"] = StringHelper.GetTimeStamp();
         //获取签名
         formFields["signature"] = SignatureHelper.BuildSign(formFields, ApiConst.SecretKey);
         byte[] request_body = Encoding.UTF8.GetBytes(PrepareRequestBody(formFields));
         var    request      = CreateRequest(ApiConst.Url + reqName, request_body);
         using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
         {
             return(GetResponse <T>(response, OnError));
         }
     }
     catch (Exception ex)
     {
         log.Error(reqName + " " + ex.ToString());
         ResultModel result = new ResultModel();
         result.resultMsg  = "连接服务器失败";
         result.resultCode = 500;
         OnError?.Invoke(result);
         return(default(T));
     }
 }
Пример #2
0
        /// <summary>
        /// Ons the excute.
        /// </summary>
        /// <param name="filterContext">The context.</param>
        /// <returns>ApiRequestStatusCode.</returns>
        public ApiStatusCode onExcute(ActionExecutingContext filterContext)
        {
            ctx = filterContext.HttpContext;
            Dictionary <string, object> prams = GetParams(filterContext.HttpContext.Request);
            string requestSign = string.Empty;

            if (prams.ContainsKey("sign"))
            {
                requestSign = prams["sign"].ToString();
            }

            if (string.IsNullOrEmpty(requestSign))
            {
                return(ApiStatusCode.未授权);
            }

            Dictionary <string, string> paramters = new Dictionary <string, string>();

            foreach (var item in prams)
            {
                if (item.Key != "sign" && !string.IsNullOrEmpty(item.Value.ToString()))
                {
                    paramters.Add(item.Key.ToLower(), filterContext.HttpContext.Server.UrlDecode(item.Value.ToString()));
                }
            }
            string currentSign = SignatureHelper.BuildSign(paramters, ConstConfig.SECRET_KEY);

            if (!requestSign.Equals(currentSign))
            {
                return(ApiStatusCode.未授权);
            }
            return(ApiStatusCode.OK);
        }
Пример #3
0
        /// <summary>
        /// 获取优惠券信息
        /// </summary>
        private void GetCouponInfo()
        {
            int    uid         = GetFormValue("userid", 0);
            int    cpid        = GetFormValue("cpid", 0);
            string requestSign = GetFormValue("sign", "");
            Dictionary <string, string> paramters = new Dictionary <string, string>();

            paramters.Add("userid", uid.ToString());
            paramters.Add("cpid", cpid.ToString());
            string currentSign = SignatureHelper.BuildSign(paramters, ConstConfig.SECRET_KEY);

            if (!requestSign.Equals(currentSign))
            {
                json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.未授权));
            }
            else
            {
                // CashCouponModel model = CouponLogic.GetModel(cpid, true);
                CashCouponLogModel model = CouponLogic.GetCashCouponLogIDByUserID(uid, cpid);
                if (model != null)
                {
                    Dictionary <string, object> data = new Dictionary <string, object>();
                    data["time"]   = model.StartTime.ToString("yyyy.MM.dd") + "-" + model.EndTime.ToString("yyyy.MM.dd");
                    data["money"]  = model.Money;
                    data["remark"] = model.Remark;
                    data["url"]    = "http://" + ctx.Request.Url.Host + string.Format("/app/getcoupon.html?userid={0}&cpid={1}&sign={2}", uid, cpid, currentSign);
                    json           = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.OK, data));
                }
                else
                {
                    json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.现金券已领完));
                }
            }
        }
Пример #4
0
 /// <summary>
 /// 初始化浏览器
 /// </summary>
 public void InitBrowser(string url, EventHandler <FrameLoadEndEventArgs> loadEnd)
 {
     if (browser == null)
     {
         CefSettings cfs = new CefSettings();
         Dictionary <string, string> formFields = new Dictionary <string, string>();
         formFields["token"] = MyUserInfo.LoginToken;
         //获取签名
         string signature = SignatureHelper.BuildSign(formFields, ApiConst.SecretKey);
         string param     = string.Format("hottecexe:token={0}&signature={1};", MyUserInfo.LoginToken, signature);
         cfs.UserAgent = param + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36";
         Cef.Initialize(cfs, true, true);
         BrowserSettings settings = new BrowserSettings()
         {
             LocalStorage = CefState.Enabled,
             Javascript   = CefState.Enabled,
             Plugins      = CefState.Enabled,
             ImageLoading = CefState.Enabled,
             ImageShrinkStandaloneToFit = CefState.Enabled,
             WebGl = CefState.Enabled
         };
         browser = new ChromiumWebBrowser(url);
         browser.BrowserSettings = settings;
         browser.RegisterJsObject("hotJs", new MyUserInfo(), false);
         browser.FrameLoadEnd   += (s, e) => { loadEnd(s, e); };
         browser.Dock            = DockStyle.Fill;
         browser.LifeSpanHandler = new LifeSpanHandler();
         browser.MenuHandler     = new MenuHandler();
     }
     else
     {
         browser.Load(url);
     }
 }
Пример #5
0
        /// <summary>
        /// 获取Sign
        /// </summary>
        /// <param name="couponid">The couponid.</param>
        /// <returns>System.String.</returns>
        public string GetSign(int couponid)
        {
            Dictionary <string, string> paramters = new Dictionary <string, string>();

            paramters.Add("couponid", couponid.ToString());
            paramters.Add("userid", UserId.ToString());
            return(SignatureHelper.BuildSign(paramters, ConstConfig.SECRET_KEY));
        }
Пример #6
0
 /// <summary>
 /// 设置userAgent
 /// </summary>
 public void SetUserAgent()
 {
     try
     {
         CefSettings cfs = new CefSettings();
         Dictionary <string, string> formFields = new Dictionary <string, string>();
         //formFields["taobaoName"] = MyUserInfo.TaobaoName;
         formFields["token"] = MyUserInfo.LoginToken;
         //获取签名
         string signature = SignatureHelper.BuildSign(formFields, ApiConst.SecretKey);
         string param     = string.Format("hottecexe:token={0}&signature={1};", MyUserInfo.LoginToken, signature);
         cfs.UserAgent = param + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36";
         Cef.Initialize(cfs, true, true);
     }
     catch (Exception ex)
     {
         log.Error(ex);
     }
 }
Пример #7
0
        /// <summary>
        /// 登录成功事件回调
        /// </summary>
        /// <param name="jsons">The jsons.</param>
        private void Lw_LoginSuccessHandle(CookieCollection cookies)
        {
            try
            {
                loginSuccess = true;
                loginWindowsHide();
                AddBrowser();
                MyUserInfo.cookies    = cookies;
                MyUserInfo.TaobaoName = lw.GetTaobaoName();
                MyUserInfo.cookieJson = lw.GetCurrentCookiesToString();
                Dictionary <string, string> formFields = new Dictionary <string, string>();
                formFields["taobaoName"] = MyUserInfo.TaobaoName;
                formFields["token"]      = MyUserInfo.LoginToken;
                //获取签名
                string signature = SignatureHelper.BuildSign(formFields, ApiConst.SecretKey);
                string param     = string.Format("token={0}&signature={1}&taobaoName={2}", MyUserInfo.LoginToken, signature, MyUserInfo.TaobaoName);
                loginForm.InitBrowser(ApiConst.Url + "/widePlace/login?" + param);



                if (loginTaobaoSuccessThread != null)
                {
                    loginTaobaoSuccessThread.Abort();
                    loginTaobaoSuccessThread = null;
                }

                loginTaobaoSuccessThread = new System.Threading.Thread(() =>
                {
                    bindTaobao(MyUserInfo.cookieJson);
                })
                {
                    IsBackground = true
                };

                loginTaobaoSuccessThread.Start();
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
        }
Пример #8
0
        /// <summary>
        /// 领取优惠券
        /// </summary>
        private void CouponGet()
        {
            try
            {
                int    uid         = GetFormValue("userid", 0);
                int    cpid        = GetFormValue("cpid", 0);
                string username    = GetFormValue("username", "");
                string usermobile  = GetFormValue("usermobile", "");
                string requestSign = GetFormValue("sign", "");

                Dictionary <string, string> paramters = new Dictionary <string, string>();
                paramters.Add("userid", uid.ToString());
                paramters.Add("cpid", cpid.ToString());
                string currentSign = SignatureHelper.BuildSign(paramters, ConstConfig.SECRET_KEY);
                if (!requestSign.Equals(currentSign))
                {
                    json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.未授权));
                }
                else
                {
                    if (!RegexHelper.IsValidMobileNo(usermobile))
                    {
                        json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.无效手机号));
                        return;
                    }

                    //
                    lock (objCouponGetLocked)
                    {
                        CashCouponLogModel logModel = CouponLogic.GetCashCouponLogIDByUserID(uid, cpid);
                        if (logModel != null)
                        {
                            using (TransactionScope scope = new TransactionScope())
                            {
                                bool flag = CouponLogic.UpdateUserCashCouponGetLog(new CashCouponLogModel()
                                {
                                    UserId = uid,
                                    ID     = logModel.ID,
                                    Name   = username,
                                    Mobile = usermobile
                                });
                                if (flag)
                                {
                                    Dictionary <string, object> dict = new Dictionary <string, object>();
                                    dict["couponNo"] = logModel.CouponNo;
                                    json             = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.OK, dict));

                                    CouponLogic.DeleteUserCashCoupon(logModel.CouponNo, logModel.CouponId, uid);
                                    var user = UserLogic.GetModel(uid);
                                    if (user != null)
                                    {
                                        CashCouponModel model = CouponLogic.GetModel(cpid, true);
                                        //添加优惠券领取操作日志
                                        LogLogic.AddCouponLog(new LogBaseModel()
                                        {
                                            objId         = model.CouponId,
                                            UserId        = user.UserId,
                                            ShopId        = logModel.ShopId,
                                            OperationType = 1,//0创建 1领取 2使用
                                            Money         = logModel.Money
                                        });
                                    }

                                    try
                                    {
                                        var shopData = ShopLogic.GetShopModel(logModel.ShopId);
                                        if (shopData != null)
                                        {
                                            string errmsg  = "";
                                            string content = string.Format("您收到一张新的{0}元现金券,现金券使用码:{1},您可在{2}前到门店消费使用。门店地址:{3}",
                                                                           logModel.Money,
                                                                           logModel.CouponNo,
                                                                           logModel.StartTime.ToString("yyyy.MM.dd") + "-" + logModel.EndTime.ToString("yyyy.MM.dd"),
                                                                           shopData.ShopProv + shopData.ShopCity + shopData.ShopAddress + shopData.ShopName
                                                                           );
                                            if (!string.IsNullOrEmpty(usermobile) && RegexHelper.IsValidMobileNo(usermobile))
                                            {
                                                SmsLogic.send(1, usermobile, content, out errmsg);
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        LogHelper.Log(string.Format("Message:{0},StackTrace:{1}", ex.Message, ex.StackTrace), LogHelperTag.ERROR);
                                    }
                                }
                                else
                                {
                                    json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.SERVICEERROR));
                                }

                                scope.Complete();
                            }
                        }
                        else
                        {
                            json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.现金券已领完));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Log(string.Format("Message:{0},StackTrace:{1}", ex.Message, ex.StackTrace), LogHelperTag.ERROR);
                json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.SERVICEERROR));
            }
        }