Esempio n. 1
0
        private string RunHttp(string action,params string[] paraStrArr)
        {
            MyHttpUtility http = new MyHttpUtility ();
            string content = "action=" + action + "&dataArrStr=";

            if (paraStrArr != null) {
                foreach (string str in paraStrArr) {
                    content += System.Web.HttpUtility.UrlEncode (str) + ",";
                }
                content = content.Substring (0, content.Length - 1);
            }
            try {
                return http.DoPost (evalActionUrl, encryption.EncryptData (content));
            } catch (Exception ex) {
                onError ("DoPost exception:"+ content  +" ,", ex);
                return null;
            }
        }
Esempio n. 2
0
        public JsonResult SyncHolday()
        {
            JsonMessage jm = new JsonMessage();
            MyHttpUtility http = new MyHttpUtility();
            DateTime queryTime = DateTime.Today;
            DateTime maxTime = DateTime.Today.AddMonths(1);
            while (queryTime < maxTime)
            {
                int tryCount = 10;
                while (true)
                {
                    try
                    {
                        using (DBContext context = new DBContext())
                        {
                            string queryDate = queryTime.ToString("yyyy-MM-dd");
                            string timeJson = http.DoGet("http://www.easybots.cn/api/holiday.php?d=" + queryDate);
                            if (string.IsNullOrEmpty(timeJson)) throw new Exception("节假日返回值为空");
                            string[] tempArr = timeJson.Substring(1, timeJson.Length - 2).Split(':');
                            if (tempArr.Length != 2) throw new Exception("节假日返回值有变动");
                            int val = Convert.ToInt32(tempArr[1].Replace('\"', ' ').Trim());
                            //写到数据为
                            string sql = "update Holiday set isHoliday=" + val + " where day = '" + queryDate + "'";
                            int cc = context.ExecuteCommand(sql);
                            if (cc == 0)
                            {
                                sql = "insert into Holiday(day,isHoliday) values('" + queryDate + "'," + val + " )";
                                context.ExecuteCommand(sql);

                            }
                        }
                        break;
                    }
                    catch (System.Net.WebException ex)
                    {
                        tryCount--;
                        if (tryCount < 0) { jm.LogException(ex); break; }
                        LogError("使用网络节假日发生网络异常,重试" + tryCount, ex);
                    }
                    catch (Exception ex)
                    {
                        jm.LogException(ex);
                    }
                    break;
                }
                queryTime = queryTime.AddDays(1);
            }
            return Json(jm, JsonRequestBehavior.AllowGet);
        }
Esempio n. 3
0
        public void MonitorBankResult(object obj)
        {
            if (systemExit) return;
            string[] arr = obj as string[];
            string batchCurrnum = arr [0];
            string batchDate = arr [1];
            string[] terminals = arr[2].ToString().Split();
            MyHttpUtility http = new MyHttpUtility();
            bool isFinish = false;
            while (!(isFinish ||systemExit)) {
                try {
                    string json = RunHttp ("Home.GetRongBao", batchCurrnum, batchDate);
                    JsonMessage<QueryResult> resultJson = Newtonsoft.Json.JsonConvert.DeserializeObject<JsonMessage<QueryResult>> (json);
                    if (!string.IsNullOrEmpty (resultJson.Message)) {
                        this.BeginInvoke (new delegateTwoParam (SetBankLog), batchCurrnum, "查询银行处理结果失败:" + resultJson.Message);
                    } else {

                        string statusText = "";
                        switch (resultJson.Result.batchStatus) {
                        case 0:
                            statusText = "待确认";
                            break;
                        case 1:
                            statusText = "待审核";
                            break;
                        case 2:
                            statusText = "商户审核拒绝";
                            isFinish = true;
                            break;
                        case 3:
                            statusText = "处理中";
                            break;
                        case 4:
                            isFinish = true;
                            statusText = "交易完毕";
                            break;
                        }
                        this.BeginInvoke (new delegateTwoParam (SetBankLog), batchCurrnum, "银行处理结果为:" + statusText);
                        if (isFinish) {
                            this.BeginInvoke (new QueryBankFinish (onBankFinish), resultJson.Result);
                            this.BeginInvoke (new delegateOnParam (AppendSumLog), batchCurrnum + "监听完成");
                            return;
                        }else{
                            System.Threading.Thread.Sleep (30000);
                        }
                    }
                } catch (Exception ex) {
                    if(!systemExit)	onError ("查询银行处理", ex, true);
                }

            }
        }