Exemplo n.º 1
0
        public OrderInfo submitOrderService(MainForm frm)
        {
            OrderInfoDao dao = new OrderInfoDao();
            OrderInfo phoneInfo = dao.getSubmitOrderDao();
            if (phoneInfo != null)
            {
                try
                {
                    String jdOrderId = "";
                    String jdOrderInTime = "";
                    String orderId = phoneInfo.order_id.Trim();
                    String facePrice = phoneInfo.face_price.Trim();
                    String telephone = phoneInfo.phone_no.Trim();

                    View.write("实立单号:" + orderId + ",号码:" + telephone + ",面值:" + facePrice + ",开始充值提交...");
                    log.Debug("实立单号:" + orderId + ",号码:" + telephone + ",面值:" + facePrice + ",开始充值提交...");
                    if (!String.IsNullOrEmpty(orderId) && !String.IsNullOrEmpty(facePrice) && !String.IsNullOrEmpty(telephone))
                    {
                        log.Debug("searchSkuIdResult:http://chongzhi.jd.com/json/order/search_searchPhone.action?mobile=" + telephone);
                        String telephoneInfo = Share.getPage("http://chongzhi.jd.com/json/order/search_searchPhone.action", "mobile=" + telephone, "");
                        log.Debug("telephoneInfo:" + telephoneInfo);
                        if (String.IsNullOrEmpty(telephoneInfo) || telephoneInfo.Contains("System.Net.WebException"))
                        {
                            log.Debug("searchSkuIdResult:http://chongzhi.jd.com/json/order/search_searchPhone.action?mobile=" + telephone);
                            telephoneInfo = Share.getPage("http://chongzhi.jd.com/json/order/search_searchPhone.action", "mobile=" + telephone, "");
                            log.Debug("telephoneInfo:" + telephoneInfo);
                        }
                        JObject telephoneInfoJson = (JObject)JsonConvert.DeserializeObject(telephoneInfo);
                        String area = telephoneInfoJson["area"].ToString().Trim();
                        String ISP = telephoneInfoJson["provider"].ToString().Trim();
                        log.Debug("searchSkuIdResult:http://chongzhi.jd.com/json/order/search_searchSkuId.action?ISP=" + ISP + "&area=" + area + "&filltype=0&faceValue=" + facePrice);
                        String searchSkuIdResult = Share.getPage("http://chongzhi.jd.com/json/order/search_searchSkuId.action", "ISP=" + ISP + "&area=" + area + "&filltype=0&faceValue=" + facePrice, "");
                        log.Debug("searchSkuIdResult:" + searchSkuIdResult);
                        if (String.IsNullOrEmpty(searchSkuIdResult) || searchSkuIdResult.Contains("System.Net.WebException"))
                        {
                            log.Debug("searchSkuIdResult:http://chongzhi.jd.com/json/order/search_searchSkuId.action?ISP=" + ISP + "&area=" + area + "&filltype=0&faceValue=" + facePrice);
                            searchSkuIdResult = Share.getPage("http://chongzhi.jd.com/json/order/search_searchSkuId.action", "ISP=" + ISP + "&area=" + area + "&filltype=0&faceValue=" + facePrice, "");
                            log.Debug("searchSkuIdResult:" + searchSkuIdResult);
                        }
                        JObject searchSkuIdResultJson = (JObject)JsonConvert.DeserializeObject(searchSkuIdResult);
                        String skuId = searchSkuIdResultJson["skuId"].ToString();
                        log.Debug("jdPrice:http://chongzhi.jd.com/json/order/searchp_searchJdPrice.action?skuId=" + skuId);
                        String jdPrice = Share.getPage("http://chongzhi.jd.com/json/order/searchp_searchJdPrice.action", "skuId=" + skuId, "").Trim().Replace("\"", "");
                        log.Debug("jdPrice:" + jdPrice);
                        if (String.IsNullOrEmpty(jdPrice) || jdPrice.Contains("System.Net.WebException") || jdPrice.Length > 100)
                        {
                            log.Debug("jdPrice:http://chongzhi.jd.com/json/order/searchp_searchJdPrice.action?skuId=" + skuId);
                            jdPrice = Share.getPage("http://chongzhi.jd.com/json/order/searchp_searchJdPrice.action", "skuId=" + skuId, "").Trim().Replace("\"", "");
                            log.Debug("jdPrice:" + jdPrice);
                        }
                        log.Debug("获取到京东价格:" + jdPrice + ",区域ID:" + area + ",产品ID:" + skuId + ",开始匹配优惠券...");
                        View.write("获取到京东价格:" + ((jdPrice.Length > 100) ? "异常" : jdPrice) + ",区域ID:" + area + ",产品ID:" + skuId + ",开始匹配优惠券...");
                        log.Debug("youHuiQuanJson:http://chongzhi.jd.com/json/order/searchp_searchDxqInfo.action?ISP=" + ISP + "&jdPrice=" + jdPrice);
                        String youHuiQuanJson = Share.getPage("http://chongzhi.jd.com/json/order/searchp_searchDxqInfo.action", "ISP=" + ISP + "&jdPrice=" + jdPrice, "");
                        log.Debug("youHuiQuanJson:" + youHuiQuanJson);
                        if (String.IsNullOrEmpty(youHuiQuanJson) || youHuiQuanJson.Contains("System.Net.WebException"))
                        {
                            log.Debug("youHuiQuanJson:http://chongzhi.jd.com/json/order/searchp_searchDxqInfo.action?ISP=" + ISP + "&jdPrice=" + jdPrice);
                            youHuiQuanJson = Share.getPage("http://chongzhi.jd.com/json/order/searchp_searchDxqInfo.action", "ISP=" + ISP + "&jdPrice=" + jdPrice, "");
                            log.Debug("youHuiQuanJson:" + youHuiQuanJson);
                        }
                        String dxqidsStr = getdxqidsString(youHuiQuanJson, jdPrice);

                        if (!String.IsNullOrEmpty(dxqidsStr))
                        {
                            log.Debug("查找到过期最快的优惠券 dxqidsStr:" + dxqidsStr + ",开始验证是否可以提交充值等信息...");
                            View.write("查找到过期最快的优惠券 dxqidsStr:" + dxqidsStr + ",开始验证是否可以提交充值等信息...");
                            phoneInfo.features = "优惠券编号:" + dxqidsStr;
                            log.Debug("hideKeyResult:http://chongzhi.jd.com/order/order_place.action?skuId=" + skuId + "&mobile=" + telephone + "&entry=4");
                            String hideKeyResult = Share.getPage("http://chongzhi.jd.com/order/order_place.action", "skuId=" + skuId + "&mobile=" + telephone + "&entry=4", "");
                            log.Debug("hideKeyResult:" + hideKeyResult);
                            if (String.IsNullOrEmpty(hideKeyResult) || hideKeyResult.Contains("System.Net.WebException"))
                            {
                                log.Debug("hideKeyResult:http://chongzhi.jd.com/order/order_place.action?skuId=" + skuId + "&mobile=" + telephone + "&entry=4");
                                hideKeyResult = Share.getPage("http://chongzhi.jd.com/order/order_place.action", "skuId=" + skuId + "&mobile=" + telephone + "&entry=4", "");
                                log.Debug("hideKeyResult:" + hideKeyResult);
                            }
                            String hideKey = Share.getValue("<input type=\"hidden\" id=\"hideKey\" name=\"hideKey\" value=\"", "\"/>", hideKeyResult);
                            log.Debug("checkRechargeResult:http://chongzhi.jd.com/json/order/searchp_checkRecharge.action?mobile=" + telephone + "&skuId=" + skuId);
                            String checkRechargeResult = Share.getPage("http://chongzhi.jd.com/json/order/searchp_checkRecharge.action", "mobile=" + telephone + "&skuId=" + skuId, "");
                            log.Debug("checkRechargeResult:" + checkRechargeResult);
                            if (String.IsNullOrEmpty(checkRechargeResult) || checkRechargeResult.Contains("System.Net.WebException"))
                            {
                                log.Debug("checkRechargeResult:http://chongzhi.jd.com/json/order/searchp_checkRecharge.action?mobile=" + telephone + "&skuId=" + skuId);
                                checkRechargeResult = Share.getPage("http://chongzhi.jd.com/json/order/searchp_checkRecharge.action", "mobile=" + telephone + "&skuId=" + skuId, "");
                                log.Debug("checkRechargeResult:" + checkRechargeResult);
                            }
                            JObject checkRechargeResultJson = (JObject)JsonConvert.DeserializeObject(checkRechargeResult);
                            String flag = checkRechargeResultJson["flag"].ToString().Trim().ToLower();
                            log.Debug("获取到是否可以提交充值:" + flag + ",hideKey:" + hideKey + ",开始提交充值...");
                            View.write("获取到是否可以提交充值:" + flag + ",hideKey:" + hideKey + ",开始提交充值...");
                            
                            if (flag == "true")
                            {
                                try
                                {
                                    String mobileFor = telephone.Substring(0, 3) + "+" + telephone.Substring(3, 4) + "+" + telephone.Substring(7, 4);
                                    log.Debug("submitOrderResult:http://chongzhi.jd.com/order/order_submitOrder.action?mobile=" + telephone + "&mobileFor=" + mobileFor + "&placeOrderVo.fillType=0&radiobutton=" + facePrice + dxqidsStr + "&paymentPassword="******"&skuId=" + skuId + "&entry=4&price=" + jdPrice + "&hideKey=" + hideKey + "&areaCodeU=7&rechargeTypeU=2&messageId=&initFlag=&payType=3&canUseJingdou=&usedJingdouNum=");
                                    String submitOrderResult = Share.getPage("http://chongzhi.jd.com/order/order_submitOrder.action", "mobile=" + telephone + "&mobileFor=" + mobileFor + "&placeOrderVo.fillType=0&radiobutton=" + facePrice + dxqidsStr + "&paymentPassword="******"&skuId=" + skuId + "&entry=4&price=" + jdPrice + "&hideKey=" + hideKey + "&areaCodeU=7&rechargeTypeU=2&messageId=&initFlag=&payType=3&canUseJingdou=&usedJingdouNum=", "http://chongzhi.jd.com/order/order_place.action?skuId=" + skuId + "&mobile=" + telephone + "&entry=4");
                                    log.Debug("submitOrderResult:" + submitOrderResult);
                                    if (String.IsNullOrEmpty(submitOrderResult) || submitOrderResult.Contains("System.Net.WebException"))
                                    {
                                        phoneInfo.fail_reason = "状态未知";
                                        phoneInfo.order_new_status = "3";
                                        log.Debug("状态未知,需要人工核实");
                                        View.write("状态未知,需要人工核实");
                                    }
                                    else
                                    {
                                        if (submitOrderResult.Contains("您已付款成功!正在为您充值"))
                                        {
                                            phoneInfo.order_new_status = "2";
                                            phoneInfo.fail_reason = "付款成功,正在充值";
                                            log.Debug("您已付款成功!正在为您充值,开始获取京东订单号...");
                                            View.write("您已付款成功!正在为您充值,开始获取京东订单号...");
                                            try
                                            {
                                                log.Debug("orderListResult:http://order.jd.com/center/list.action?t=37&d=0&s=4096");
                                                String orderListResult = Share.getPageOrder("http://order.jd.com/center/list.action", "t=37&d=0&s=4096", "");
                                                log.Debug("orderListResult:" + orderListResult);
                                                if (String.IsNullOrEmpty(orderListResult) || orderListResult.Contains("System.Net.WebException"))
                                                {
                                                    log.Debug("orderListResult:http://order.jd.com/center/list.action?t=37&d=0&s=4096");
                                                    orderListResult = Share.getPageOrder("http://order.jd.com/center/list.action", "t=37&d=0&s=4096", "");
                                                    log.Debug("orderListResult:" + orderListResult);
                                                }
                                                String firstOrderId = Share.getValue("<span id=\"pop_sign\" style=\"display:none;\">[{\"orderType\":37,\"orderIds\":[\"", "\"", orderListResult);
                                                log.Debug("firstOrderIdResult:http://chongzhi.jd.com/order/order_autoDetail.action?orderId=" + firstOrderId);
                                                String firstOrderIdResult = Share.getPage("http://chongzhi.jd.com/order/order_autoDetail.action", "orderId=" + firstOrderId, "");
                                                log.Debug("firstOrderIdResult:" + firstOrderIdResult);
                                                if (String.IsNullOrEmpty(firstOrderIdResult) || firstOrderIdResult.Contains("System.Net.WebException"))
                                                {
                                                    log.Debug("firstOrderIdResult:http://chongzhi.jd.com/order/order_autoDetail.action?orderId=" + firstOrderId);
                                                    firstOrderIdResult = Share.getPage("http://chongzhi.jd.com/order/order_autoDetail.action", "orderId=" + firstOrderId, "");
                                                    log.Debug("firstOrderIdResult:" + firstOrderIdResult);
                                                }
                                                String orderTelephone = Share.getValue("<li>手机号码:", "</li>", firstOrderIdResult);
                                                String orderFacePrice = Share.getValue("<li>充值面额:", "元</li>", firstOrderIdResult);
                                                String orderInTime = Share.getValue("<li>下单时间:", "</li>", firstOrderIdResult);
                                                if (float.Parse(orderFacePrice) == float.Parse(facePrice) && Share.getMacherStr(telephone, orderTelephone))
                                                {
                                                    jdOrderId = firstOrderId;
                                                    jdOrderInTime = orderInTime;
                                                    phoneInfo.vender_order_no = jdOrderId;
                                                    log.Debug("获取到京东订单号:" + jdOrderId + ",京东下单时间:" + jdOrderInTime);
                                                    View.write("获取到京东订单号:" + jdOrderId + ",京东下单时间:" + jdOrderInTime);
                                                }
                                                else
                                                {
                                                    log.Debug("获取京东订单信息失败,请人工核实!");
                                                    View.write("获取京东订单信息失败,请人工核实!");
                                                }
                                            }
                                            catch (Exception exc)
                                            {
                                                log.Debug("获取京东订单信息异常,请人工核实!" + exc);
                                                View.write("获取京东订单信息异常,请人工核实!");
                                            }
                                        }
                                        else
                                        {
                                            phoneInfo.order_new_status = "4";
                                            String failReason = Share.getValue("<div class=\"success\"><s></s>", "</h4>", submitOrderResult);
                                            phoneInfo.fail_reason = failReason;
                                            log.Debug("付款失败,失败原因:" + failReason);
                                            View.write("付款失败,失败原因:" + failReason);
                                        }
                                    }
                                }
                                catch (Exception exc)
                                {
                                    phoneInfo.fail_reason = "状态未知";
                                    phoneInfo.order_new_status = "3";
                                    log.Debug("状态未知,需要人工核实");
                                    View.write("状态未知,需要人工核实");
                                }
                            }
                            else
                            {
                                phoneInfo.order_new_status = "4";
                                phoneInfo.fail_reason = "未付款,原因:付款前检查是否可以充值返回" + checkRechargeResult + " is false";
                                log.Debug("未付款,原因:付款前检查是否可以充值返回" + checkRechargeResult + " is false");
                                View.write("未付款,原因:付款前检查是否可以充值" + checkRechargeResult + " is false");
                            }
                        }
                        else
                        {
                            phoneInfo.order_new_status = "4";
                            phoneInfo.fail_reason = "未查找到优惠券,付款失败";
                            log.Debug("未查找到优惠券,付款失败");
                            View.write("未查找到优惠券,付款失败");
                        }
                    }
                    else
                    {
                        phoneInfo.order_new_status = "4";
                        phoneInfo.fail_reason = "该行面值、号码、单号参数为空,提交失败";
                        log.Debug("该行面值、号码、单号参数为空,提交失败");
                        View.write("该行面值、号码、单号参数为空,提交失败");
                    }
                }
                catch (Exception ex)
                {
                    phoneInfo.order_new_status = "4";
                    phoneInfo.fail_reason = "程序异常提交失败";
                    log.Debug("程序异常,提交失败!" + ex);
                    View.write("异常提交失败!");
                }

                int updateCount = dao.updateOrderStatusDao(phoneInfo);
                log.Debug("updateOrderStatusDao orderId:" + phoneInfo.order_id + ",更新结果:" + updateCount);
                View.write("orderId:" + phoneInfo.order_id + ",更新结果:" + updateCount);
            }
            return phoneInfo;
        }