Ejemplo n.º 1
0
        ////----------正式参数---------------
        //public string organization = "1000000438";//机构号
        //public string password = "******";//密码
        //public string skey = "oiszFLRc";//DES密钥

        ////-----------测试参数----------------
        //public string organization = "1000000286";//机构号
        //public string password = "******";//密码
        //public string skey = "vSK5eIRC";//des密钥

        #region  发送电子票
        internal string Add_Order(ApiService mapiservice, Api_yg_addorder_input minput)
        {
            StringBuilder builderOrder = new StringBuilder();

            builderOrder.Append(@"<?xml version=""1.0"" encoding=""utf-8"" ?>");
            builderOrder.Append(@"<business_trans version=""1.0"">");
            builderOrder.AppendFormat("<request_type>{0}</request_type>", "add_order");
            builderOrder.AppendFormat("<organization>{0}</organization>", mapiservice.Organization);  //<!-机构号-->
            builderOrder.AppendFormat("<password>{0}</password>", mapiservice.Password);              //<!-- 接口使用密码  y-->
            builderOrder.AppendFormat("<req_seq>{0}</req_seq>", minput.req_seq);                      //<!--请求流水号 y-->
            builderOrder.AppendFormat("<order>");                                                     //<!--订单信息-->
            builderOrder.AppendFormat("<product_num>{0}</product_num>", minput.product_num);          //<!--产品编码 y-->
            builderOrder.AppendFormat("<num>{0}</num>", minput.num);                                  //<!--购买数量 y-->
            builderOrder.AppendFormat("<mobile>{0}</mobile>", minput.mobile);                         //<!-- 手机号码 y-->
            builderOrder.AppendFormat("<use_date>{0}</use_date>", minput.use_date);                   //<!-- 使用时间 -->
            builderOrder.AppendFormat("<real_name_type>{0}</real_name_type>", minput.real_name_type); //<!-- 实名制类型:0无需实名 1一张一人,2一单一人,3一单一人+身份证-->
            builderOrder.AppendFormat("<real_name>{0}</real_name>", minput.real_name);                //<!--真是姓名  ,隔开 最多3个名字 <=3 -->
            builderOrder.AppendFormat("<id_card>{0}</id_card>", minput.id_card);                      //<!--证件号码 -->
            builderOrder.AppendFormat("<card_type>{0}</card_type>", minput.card_type);                //<!--证件类型0身份证;1其他证件 -->
            builderOrder.AppendFormat("</order>");
            builderOrder.AppendFormat("</business_trans>");

            string bstr = "";

            try
            {
                ITicketService its10   = new ITicketService();
                string         en      = EncryptionHelper.DESEnCode(builderOrder.ToString(), mapiservice.Deskey);
                string         retxmls = its10.getEleInterface(mapiservice.Organization, en);

                bstr = EncryptionHelper.DESDeCode(retxmls, mapiservice.Deskey);
            }
            catch (Exception e)
            {
                bstr = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                       "<business_trans>" +
                       "<response_type>add_order</response_type>" +
                       "<req_seq>" + minput.req_seq + "</req_seq>" +
                       "<result>" +
                       "<id></id>" +
                       "<comment>" + e.Message + "</comment>" +
                       " </result>" +
                       "</business_trans>";
            }
            //录入交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "add_order",
                Serviceid     = 1,
                Str           = builderOrder.ToString().Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = bstr,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            return(bstr);
        }
Ejemplo n.º 2
0
        public string query_order(string req_seq_sel)
        {
            ApiService mapiservice = new ApiServiceData().GetApiservice(1);


            string req_seq = mapiservice.Organization + DateTime.Now.ToString("yyyyMMddhhssmm") + CommonFunc.CreateNum(6);//请求流水号

            StringBuilder builderOrder = new StringBuilder();

            builderOrder.Append(@"<?xml version=""1.0"" encoding=""utf-8""?>");
            builderOrder.Append(@"<business_trans version=""1.0"">");
            builderOrder.Append("<request_type>query_order</request_type>");                         //<!--查询-->
            builderOrder.AppendFormat("<organization>{0}</organization>", mapiservice.Organization); //<!--机构号-->
            builderOrder.AppendFormat("<password>{0}</password>", mapiservice.Password);             //<!-- 接口使用密码  -->
            builderOrder.AppendFormat("<req_seq>{0}</req_seq>", req_seq);                            //<!--请求流水号-->
            builderOrder.Append("<order>");
            builderOrder.AppendFormat("<order_num>{0}</order_num>", req_seq_sel);                    //<!-- 订单号 y-->
            builderOrder.Append("</order>");
            builderOrder.Append("</business_trans>");

            string bstr = "";

            try
            {
                ITicketService its11   = new ITicketService();
                string         en      = EncryptionHelper.DESEnCode(builderOrder.ToString(), mapiservice.Deskey);
                string         retxmls = its11.getEleInterface(mapiservice.Organization, en);

                bstr = EncryptionHelper.DESDeCode(retxmls, mapiservice.Deskey);
            }
            catch (Exception e)
            {
                bstr = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                       "<business_trans>" +
                       "<response_type>query_order</response_type>" +
                       "<req_seq>" + req_seq + "</req_seq>" +
                       "<result>" +
                       "<id></id>" +
                       "<comment>" + e.Message + "</comment>" +
                       " </result>" +
                       "</business_trans>";
            }
            //录入交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "query_order",
                Serviceid     = 1,
                Str           = builderOrder.ToString().Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = bstr,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            return(bstr);
        }
Ejemplo n.º 3
0
        private string interurl = "http://outer.mjld.com.cn/Outer/Interface/";//正式接口url

        #region 2.5、	提交订单(SubmitOrder)
        public string SubmitOrder(ApiService mapiservice, Api_Mjld_SubmitOrder_input minput)
        {
            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                         "<Body>" +
                         "<timeStamp>" + minput.timeStamp + "</timeStamp>" +
                         "<user>" + minput.user + "</user>" +
                         "<password>" + minput.password + "</password>" +
                         "<goodsId>" + minput.goodsId + "</goodsId>" +
                         "<num>" + minput.num + "</num>" +       //<!—可以填多个,默认为1 -->
                         "<phone>" + minput.phone + "</phone>" +
                         "<batch>" + minput.batch + "</batch>" + //<!-值填1时一码一票,值填0或不填该字段是一码多票>
                         "<guest_name>" + minput.guest_name + "</guest_name>" +
                         "<identityno>" + minput.identityno + "</identityno>" +
                         "<order_note>" + minput.order_note + "</order_note>" +
                         "<forecasttime>" + minput.forecasttime + "</forecasttime>" + //【产品详情里IsReserve=True时,需传递该时间;IsReserve=False时,必须保留该值为空】
                         "<outOrderId>" + minput.orderId + "</outOrderId>" +
                         "<orderpost>" +                                              //快递信息
                         "<consignee>" + minput.consignee + "</consignee>" +
                         "<address>" + minput.address + "</address>" +
                         "<zipcode>" + minput.zipcode + "</zipcode>" +
                         "</orderpost>" +
                         "</Body>";

            string data     = HttpUtility.UrlEncode(Mjld_TCodeServiceCrypt.Encrypt3DESToBase64(xml, mapiservice.Deskey));
            string postData = string.Format("businessid={1}&content={0}", data, mapiservice.Organization);

            string str = POST(interurl + "SubmitOrder", postData);

            string bstr = "fail";

            try
            {
                bstr = Mjld_TCodeServiceCrypt.Decrypt3DESFromBase64(str, mapiservice.Deskey);
            }
            catch
            {
                bstr += " " + str;
            }

            //录入交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "SubmitOrder",
                Serviceid     = 3,
                Str           = xml.Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = bstr,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            return(bstr);
        }
Ejemplo n.º 4
0
        public string cancel_order(ApiService mapiservice, Api_yg_cancelorder m_ygcancelorder)
        {
            StringBuilder buildOrder = new StringBuilder();

            buildOrder.Append(@"<?xml version=""1.0"" encoding=""utf-8""?>");
            buildOrder.Append(@"<business_trans version=""1.0"">");
            buildOrder.Append("<request_type>cancel_order</request_type>");                        //<!--撤销-->
            buildOrder.AppendFormat("<organization>{0}</organization>", mapiservice.Organization); //<!--机构号-->
            buildOrder.AppendFormat("<password>{0}</password>", mapiservice.Password);             //<!-- 接口使用密码  -->
            buildOrder.AppendFormat("<req_seq>{0}</req_seq>", m_ygcancelorder.req_seq);            //<!--请求流水号-->
            buildOrder.Append("<order>");
            buildOrder.AppendFormat("<order_num>{0}</order_num>", m_ygcancelorder.ygorder_num);    //<!-- 订单号 y-->
            buildOrder.AppendFormat("<num>{0}</num>", m_ygcancelorder.num);                        //<!-- 张数 y-->
            buildOrder.Append("</order>");
            buildOrder.Append("</business_trans>");

            string bstr = "";

            try
            {
                ITicketService its12   = new ITicketService();
                string         en      = EncryptionHelper.DESEnCode(buildOrder.ToString(), mapiservice.Deskey);
                string         retxmls = its12.getEleInterface(mapiservice.Organization, en);
                bstr = EncryptionHelper.DESDeCode(retxmls, mapiservice.Deskey);
            }
            catch (Exception e)
            {
                bstr = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                       "<business_trans>" +
                       "<response_type>cancel_order</response_type>" +
                       "<req_seq>" + m_ygcancelorder.req_seq + "</req_seq>" +
                       "<result>" +
                       "<id></id>" +
                       "<comment>" + e.Message + "</comment>" +
                       " </result>" +
                       "</business_trans>";
            }

            //录入交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "cancel_order",
                Serviceid     = 1,
                Str           = buildOrder.ToString().Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = bstr,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            return(bstr);
        }
Ejemplo n.º 5
0
        //退保
        public string Hzins_orderCancel(int orderid)
        {
            string transNo = orderid.ToString(); //(以后需要修改为渠道商订单号)易流水号,每次请求不能相同

            //根据订单号得到投保单号
            string insureNo = new Api_hzins_OrderApplyResp_OrderExtData().GetinsureNumbyorderid(orderid);//投保单号

            if (insureNo == "")
            {
                return("");
            }

            //签名,预签名数据:密钥+渠道商身份标识+交易流水号+方案代码
            string sign = EncryptionHelper.ToMD5(signkey + partnerId + transNo + insureNo, "UTF-8");

            sign = sign.ToLower();

            string s = "{" +
                       "\"transNo\":\"" + transNo + "\"," +
                       "\"partnerId\":" + partnerId + "," +
                       "\"insureNo\":\"" + insureNo + "\"," +
                       "\"sign\":\"" + sign + "\"," +
                       "\"extendInfo\":{" +
                       "\"userId\":null," +
                       "\"email\":null," +
                       "\"userName\":null," +
                       "\"phone\":null" +
                       "}" +
                       "}";

            string str = new GetUrlData().HttpPostJson("http://channel.hzins.com/api/orderCancel", s.Trim());

            //录入和慧择网交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "orderCancel",
                Serviceid     = 2,
                Str           = s.Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = str,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "发送信息:" + s.Trim() + "<br>" + "返回信息:" + str);
            return(str);
        }
Ejemplo n.º 6
0
        public string RefundByOrderID(ApiService mapiservice, Api_mjld_RefundByOrderID mrefund)
        {
            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                         "<Body>" +
                         "<timeStamp>" + CommonFunc.ConvertDateTimeInt(DateTime.Now).ToString() + "</timeStamp>" +
                         "<user>" + mrefund.user + "</user>" +
                         "<password>" + mrefund.password + "</password>" +
                         "<RefundPart>" + mrefund.RefundPart + "</RefundPart>" +      //true:允许部分退票,false:不允许部分退票
                         "<outBackId>" + mrefund.orderid + "</outBackId>" +
                         "<orderid>" + mrefund.mjldorderId + "</orderid>" +
                         "</Body>";

            string data     = HttpUtility.UrlEncode(Mjld_TCodeServiceCrypt.Encrypt3DESToBase64(xml, mapiservice.Deskey));
            string postData = string.Format("businessid={1}&content={0}", data, mapiservice.Organization);

            string str = POST(interurl + "RefundByOrderID", postData);

            string bstr = "";

            try
            {
                bstr = Mjld_TCodeServiceCrypt.Decrypt3DESFromBase64(str, mapiservice.Deskey);
            }
            catch
            {
                bstr = "";
            }

            //录入交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "RefundByOrderID",
                Serviceid     = 3,
                Str           = xml.Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = bstr,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            return(bstr);
        }
Ejemplo n.º 7
0
        public string ReSendSms(ApiService mapiservice, Api_Mjld_SubmitOrder_output moutput)
        {
            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                         "<Body>" +
                         "<timeStamp>" + CommonFunc.ConvertDateTimeInt(DateTime.Now).ToString() + "</timeStamp>" +
                         "<user>" + mapiservice.Servicername + "</user>" +
                         "<password>" + mapiservice.Password + "</password>" +
                         "<orderId>" + moutput.mjldOrderId + "</orderId>" +
                         "<credenceno>" + moutput.credence + "</credenceno>" +
                         "</Body>";

            string data     = HttpUtility.UrlEncode(Mjld_TCodeServiceCrypt.Encrypt3DESToBase64(xml, mapiservice.Deskey));
            string postData = string.Format("businessid={1}&content={0}", data, mapiservice.Organization);

            string str = POST(interurl + "ReSendSms", postData);

            string bstr = "fail";

            try
            {
                bstr = Mjld_TCodeServiceCrypt.Decrypt3DESFromBase64(str, mapiservice.Deskey);
            }
            catch
            {
                bstr += " " + str;
            }

            //录入交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "ReSendSms",
                Serviceid     = 3,
                Str           = xml.Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = bstr,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            return(bstr);
        }
Ejemplo n.º 8
0
        delegate void AsyncsendEventHandler(string updateurl, string pno, int confirmnum, string confirmtime, int agentcomid, int comid, int validateticketlogid, int aorderid);//发送验证同步发送请求委托

        /// <summary>
        /// 阳光验证通知接口
        /// </summary>
        /// <param name="context"></param>
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            string xml = context.Request["xml"].ConvertTo <string>("");

            if (xml == "")
            {
                context.Response.Write("fail 接收参数为空");//参数为空
                return;
            }

            if (xml != "")
            {
                //录入交互日志
                ApiLog mapilog = new ApiLog
                {
                    Id            = 0,
                    request_type  = "sync_order",
                    Serviceid     = 1,
                    Str           = xml.Trim(),
                    Subdate       = DateTime.Now,
                    ReturnStr     = "",
                    ReturnSubdate = DateTime.Now,
                    Errmsg        = "",
                };
                int ins = new ApiLogData().EditLog(mapilog);
                mapilog.Id = ins;

                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(xml);
                    XmlElement root             = doc.DocumentElement;
                    string     request_type     = root.SelectSingleNode("request_type").InnerText;
                    string     req_seq          = root.SelectSingleNode("req_seq").InnerText;          //原订单流水号
                    string     platform_req_seq = root.SelectSingleNode("platform_req_seq").InnerText; //平台请求流水号
                    string     order_num        = root.SelectSingleNode("order/order_num").InnerText;  //订单号
                    string     num      = root.SelectSingleNode("order/num").InnerText;                //使用张数
                    string     use_time = root.SelectSingleNode("order/use_time").InnerText;           //使用时间

                    //根据平台订单号得到易城订单号
                    int orderid = new B2bOrderData().GetOrderidByServiceOrderNum(order_num);
                    if (orderid == 0)
                    {
                        //"老系统订单,服务商订单信息获取不到"===只有阳光订单才有这种可能,其他接口则直接返回错误
                        //把验票记录 记入 验证同步日志表
                        Api_yg_Syncordernotice notice = new Api_yg_Syncordernotice
                        {
                            id               = 0,
                            req_seq          = req_seq,
                            platform_req_seq = platform_req_seq,
                            order_num        = order_num,
                            num              = num.ConvertTo <int>(0),
                            use_time         = use_time.ConvertTo <DateTime>(),
                            rcontent         = "老系统订单,服务商订单信息获取不到",
                            orderid          = 0
                        };
                        int insnotice = new Api_yg_SyncordernoticeData().EditNotice(notice);
                        notice.id = insnotice;

                        mapilog.ReturnStr     = "success";
                        mapilog.ReturnSubdate = DateTime.Now;
                        mapilog.Errmsg        = notice.rcontent;
                        new ApiLogData().EditLog(mapilog);

                        context.Response.Write("success");
                        return;
                    }

                    //根据平台流水号 得到正确处理的验证通知记录
                    Api_yg_Syncordernotice sucnotice = new Api_yg_SyncordernoticeData().GetSucNotice(platform_req_seq);
                    if (sucnotice == null)
                    {
                        //把验票记录 记入 验证同步日志表
                        Api_yg_Syncordernotice notice = new Api_yg_Syncordernotice
                        {
                            id               = 0,
                            req_seq          = req_seq,
                            platform_req_seq = platform_req_seq,
                            order_num        = order_num,
                            num              = num.ConvertTo <int>(0),
                            use_time         = use_time.ConvertTo <DateTime>(),
                            rcontent         = "",
                            orderid          = orderid
                        };
                        int insnotice = new Api_yg_SyncordernoticeData().EditNotice(notice);
                        notice.id = insnotice;



                        //易城系统订单 处理
                        B2b_order morder = new B2bOrderData().GetOrderById(orderid);
                        if (morder != null)
                        {
                            int incount  = morder.U_num;                                     //总数量
                            int usecount = morder.service_usecount + num.ConvertTo <int>(0); //验证数量
                            if (incount == usecount)                                         //全部验证
                            {
                                morder.service_usecount   = usecount;
                                morder.service_lastcount  = incount - usecount - morder.Cancelnum;
                                morder.Servicepro_v_state = ((int)Product_V_State.AllValidate).ToString(); //验证全部
                                morder.Order_state        = (int)OrderStatus.HasUsed;                      //已消费

                                new B2bOrderData().InsertOrUpdate(morder);
                            }
                            else //部分验证
                            {
                                morder.service_usecount   = usecount;
                                morder.service_lastcount  = incount - usecount - morder.Cancelnum;
                                morder.Servicepro_v_state = ((int)Product_V_State.PartValidate).ToString(); //验证部分
                                morder.Order_state        = (int)OrderStatus.HasUsed;                       //已消费

                                new B2bOrderData().InsertOrUpdate(morder);
                            }

                            //根据b单判断是否有a单存在
                            B2b_order aorder = new B2bOrderData().GetOldorderBybindingId(morder.Id);
                            if (aorder != null)
                            {
                                aorder.Order_state = morder.Order_state;

                                new B2bOrderData().InsertOrUpdate(aorder);
                            }

                            notice.rcontent = "success";
                            new Api_yg_SyncordernoticeData().EditNotice(notice);


                            //如果是分销订单,则需要给分销发送验证通知
                            //判断b订单 是否 属于某个a订单
                            if (aorder != null)
                            {
                                //得到a订单的分销信息
                                if (aorder.Agentid > 0)
                                {
                                    Agent_company acompany = new AgentCompanyData().GetAgentCompany(aorder.Agentid);
                                    if (acompany != null)
                                    {
                                        //异步发送验证同步请求
                                        AsyncsendEventHandler mydelegate = new AsyncsendEventHandler(AsyncSend);
                                        mydelegate.BeginInvoke(acompany.Agent_updateurl.Trim(), morder.Pno, morder.service_usecount, use_time, aorder.Agentid, aorder.Comid, 0, aorder.Id, new AsyncCallback(Completed), null);
                                    }
                                }
                            }
                            else
                            {
                                if (morder.Agentid > 0)
                                {
                                    Agent_company acompany = new AgentCompanyData().GetAgentCompany(morder.Agentid);
                                    if (acompany != null)
                                    {
                                        //异步发送验证同步请求
                                        AsyncsendEventHandler mydelegate = new AsyncsendEventHandler(AsyncSend);
                                        mydelegate.BeginInvoke(acompany.Agent_updateurl.Trim(), morder.Pno, morder.service_usecount, use_time, morder.Agentid, morder.Comid, 0, morder.Id, new AsyncCallback(Completed), null);
                                    }
                                }
                            }

                            mapilog.ReturnStr     = "success";
                            mapilog.ReturnSubdate = DateTime.Now;
                            mapilog.Errmsg        = "成功";
                            new ApiLogData().EditLog(mapilog);

                            context.Response.Write("success");
                            return;
                        }
                        else
                        {
                            mapilog.ReturnStr     = "fail 获取订单失败";
                            mapilog.ReturnSubdate = DateTime.Now;
                            mapilog.Errmsg        = "fail 获取订单失败";
                            new ApiLogData().EditLog(mapilog);

                            notice.rcontent = "fail 获取订单失败";
                            new Api_yg_SyncordernoticeData().EditNotice(notice);

                            context.Response.Write("fail 获取订单失败");
                            return;
                        }
                    }
                    else
                    {
                        mapilog.ReturnStr     = "success";
                        mapilog.ReturnSubdate = DateTime.Now;
                        mapilog.Errmsg        = "已经成功处理过,不在处理";
                        new ApiLogData().EditLog(mapilog);

                        context.Response.Write("success");
                        return;
                    }
                }
                catch
                {
                    context.Response.Write("fail 意外错误");//意外错误
                    return;
                }
            }
        }
Ejemplo n.º 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var inputStream = Request.InputStream;

            var strLen = Convert.ToInt32(inputStream.Length);

            var strArr = new byte[strLen];

            inputStream.Read(strArr, 0, strLen);

            var requestMes = Encoding.UTF8.GetString(strArr);

            //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", requestMes);
            //录入和慧择网交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "Hzins_AsyncNotice",
                Serviceid     = 2,
                Str           = requestMes.Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = "success",
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);



            Hzins_AsyncOrderInfo mresp = (Hzins_AsyncOrderInfo)JsonConvert.DeserializeObject(requestMes, typeof(Hzins_AsyncOrderInfo));

            if (mresp != null)
            {
                string insureNum = mresp.insureNum;
                int    orderid   = new Api_hzins_OrderApplyResp_OrderExtData().GetorderidbyinsureNum(mresp.insureNum);
                if (orderid == 0)
                {
                    TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "orderid=0");
                    return;
                }
                B2b_order modelb2border = new B2bOrderData().GetOrderById(orderid);
                if (modelb2border == null)
                {
                    TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "modelb2border==null");
                    return;
                }

                if (mresp.resultCode == 0)
                {
                    if (mresp.policyList != null)
                    {
                        List <AsyncOrderInfo_policyList> policyList = mresp.policyList;
                        foreach (AsyncOrderInfo_policyList policy in policyList)
                        {
                            int    issueState = policy.issueState;
                            string cName      = policy.insurant;

                            Api_hzins_OrderApplyResp_OrderInfo m1 = new Api_hzins_OrderApplyResp_OrderInfo
                            {
                                id         = 0,
                                orderid    = modelb2border.Id,
                                insureNum  = insureNum,
                                policyNum  = "",
                                cName      = cName,
                                cardCode   = "",
                                issueState = issueState
                            };
                            int ins1 = new Api_hzins_OrderApplyResp_OrderInfoData().EditOrderApplyResp_OrderInfo(m1);
                        }

                        modelb2border.Order_state  = (int)OrderStatus.HasSendCode;
                        modelb2border.Order_remark = "异步出单成功";
                        new B2bOrderData().InsertOrUpdate(modelb2border);

                        try
                        {
                            //如果保险订单(b单)是原始订单(a单)的绑定订单,则修改原始订单(a单)的状态
                            int aorderid = new B2bOrderData().Getinitorderid(orderid);
                            if (aorderid > 0)
                            {
                                new B2bOrderData().Uporderstate(aorderid, (int)OrderStatus.HasSendCode);
                            }
                        }
                        catch (Exception ex)
                        {
                            TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "aorderid error");
                            return;
                        }
                    }
                }
                else
                {
                    modelb2border.Order_remark = "异步出单通知错误(" + requestMes + ")";
                    new B2bOrderData().InsertOrUpdate(modelb2border);

                    TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "mresp.resultCode != 0");
                    return;
                }
            }



            Response.Write("success");

            Response.End();
        }
Ejemplo n.º 10
0
        delegate void AsyncsendEventHandler(string updateurl, string pno, int confirmnum, string confirmtime, int agentcomid, int comid, int validateticketlogid, int aorderid);//发送验证同步发送请求委托

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                string xml = Request["xml"].ToString();
                //string xml = "rzChHB2sU9ld7U8YJm+ehw3aukqIGDM4BtqU0aUKqsh0Wlv7lE7QY0h+6TyATqOKSH7pPIBOo4pIfuk8gE6jikh+6TyATqOK88GTsYxHp+jxFjUWFoOLabGkQCK4I/78+O3AIZim06QMwlqxUloGSwUMhENjECcrzbztXnARK88eCV0nzDbYTSXGBvHHQSpCtYsGXg/lwRreR77JNU04PrnA/lhi3vGqrkNT1h37aYFq1/tYQ1Xz/ZZH12+3kc7eN5HVgtJCsazTnwU3IXzBtgTaJ2ESK0/X0ncZdJ1sFl4cdnO/KompxrjYGhqFw7FIjsFUOFy3n1dNbNhZIFe8Y78Lir83nuy1W7A/bsAjwDoqCCTzSMhu4i1fpj0wiwQw2BdtiUN3SUQvOPw+mKMgINlGNcH6G0/KSglfJdF6P3DNfmxtL8FfbNt6uk7GCtoKHZD21Lc7H95at7dJ0msz8Y+YwVrIaCGc";
                //string xml = "<?xml version='1.0' encoding='UTF-8'?><Body><type>use_info</type><orderId>22221</orderId><outOrderId>126079</outOrderId><credence>991553361205</credence><useCount>1</useCount><lastCount>0</lastCount><useTime>2015-10-21 17:31:42</useTime><exchangeId>16504001</exchangeId><postTime>2015-10-21 17:33:00</postTime></Body>";
                if (xml == "")
                {
                    TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\mjldlog.txt", "xml空");

                    Response.Write("fail 接收参数为空");

                    return;
                }
                if (xml != "")
                {
                    TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\mjldlog.txt", xml);

                    ApiService mapiservice = new ApiServiceData().GetApiservice(3);
                    if (mapiservice == null)
                    {
                        TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\mjldlog.txt", "获取服务商信息失败-" + xml);

                        Response.Write("fail 获取服务商信息失败");

                        return;
                    }
                    xml = Mjld_TCodeServiceCrypt.Decrypt3DESFromBase64(xml, mapiservice.Deskey);
                    try
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.LoadXml(xml.Trim());
                        XmlElement root = doc.DocumentElement;

                        string type = root.SelectSingleNode("type").InnerText;

                        //验证推送
                        if (type == "use_info")
                        {
                            TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\mjldlog.txt", "use_info: " + xml);


                            //录入交互日志
                            ApiLog mapilog = new ApiLog
                            {
                                Id            = 0,
                                request_type  = "use_info",
                                Serviceid     = 3,
                                Str           = xml.Trim(),
                                Subdate       = DateTime.Now,
                                ReturnStr     = "",
                                ReturnSubdate = DateTime.Now,
                                Errmsg        = "",
                            };
                            int ins = new ApiLogData().EditLog(mapilog);

                            //平台订单号
                            string MjldorderId = root.SelectSingleNode("orderId").InnerText;
                            //合作伙伴订单号
                            string orderid = root.SelectSingleNode("outOrderId").InnerText;
                            //验证码
                            string credence = root.SelectSingleNode("credence").InnerText;
                            //使用数量
                            string useCount = root.SelectSingleNode("useCount").InnerText;
                            //剩余数量
                            string lastCount = root.SelectSingleNode("lastCount").InnerText;
                            //验证使用时间
                            string useTime = root.SelectSingleNode("useTime").InnerText;
                            //验证ID
                            string exchangeId = root.SelectSingleNode("exchangeId").InnerText;
                            //景区ID
                            //string ScenicId = root.SelectSingleNode("ScenicId").InnerText;
                            string ScenicId = "";
                            //推送时间
                            string postTime = root.SelectSingleNode("postTime").InnerText;

                            //根据验证id判断是否已经成功处理过该验证推送
                            Api_mjld_AsyncUsenotice sucnotice = new Api_mjld_AsyncUsenoticeData().GetSucUseNoticeByExchangeId(exchangeId);
                            if (sucnotice == null)
                            {
                                Api_mjld_AsyncUsenotice usenotice = new Api_mjld_AsyncUsenotice
                                {
                                    id          = 0,
                                    type        = type,
                                    mjldOrderId = MjldorderId,
                                    credence    = credence,
                                    useCount    = useCount.ConvertTo <int>(0),
                                    lastCount   = lastCount.ConvertTo <int>(0),
                                    useTime     = useTime,
                                    exchangeId  = exchangeId,
                                    ScenicId    = ScenicId,
                                    postTime    = postTime,
                                    rcontent    = "",
                                    orderId     = orderid.ConvertTo <int>(0),
                                };
                                int insUsenotice = new Api_mjld_AsyncUsenoticeData().EditUsenotice(usenotice);
                                usenotice.id = insUsenotice;

                                //易城系统订单 处理
                                B2b_order morder = new B2bOrderData().GetOrderById(orderid.ConvertTo <int>(0));
                                if (morder != null)
                                {
                                    if (lastCount.ConvertTo <int>(0) > 0)
                                    {
                                        int usecount = morder.service_usecount + usenotice.useCount;
                                        morder.service_usecount   = usecount;
                                        morder.service_lastcount  = usenotice.lastCount;
                                        morder.Servicepro_v_state = ((int)Product_V_State.PartValidate).ToString(); //验证部分

                                        morder.Order_state = (int)OrderStatus.HasUsed;                              //已消费

                                        new B2bOrderData().InsertOrUpdate(morder);
                                    }
                                    else
                                    {
                                        int usecount = morder.service_usecount + usenotice.useCount;
                                        morder.service_usecount   = usecount;
                                        morder.service_lastcount  = usenotice.lastCount;
                                        morder.Servicepro_v_state = ((int)Product_V_State.AllValidate).ToString(); //验证全部

                                        morder.Order_state = (int)OrderStatus.HasUsed;                             //已消费

                                        new B2bOrderData().InsertOrUpdate(morder);
                                    }

                                    //根据b单判断是否有a单存在
                                    B2b_order aorder = new B2bOrderData().GetOldorderBybindingId(morder.Id);
                                    if (aorder != null)
                                    {
                                        aorder.Order_state = morder.Order_state;

                                        new B2bOrderData().InsertOrUpdate(aorder);
                                    }

                                    usenotice.rcontent = "1";
                                    new Api_mjld_AsyncUsenoticeData().EditUsenotice(usenotice);

                                    //如果是分销订单,则需要给分销发送验证通知
                                    //判断b订单 是否 属于某个a订单
                                    if (aorder != null)
                                    {
                                        //得到a订单的分销信息
                                        if (aorder.Agentid > 0)
                                        {
                                            Agent_company acompany = new AgentCompanyData().GetAgentCompany(aorder.Agentid);
                                            if (acompany != null)
                                            {
                                                //异步发送验证同步请求
                                                AsyncsendEventHandler mydelegate = new AsyncsendEventHandler(AsyncSend);
                                                mydelegate.BeginInvoke(acompany.Agent_updateurl.Trim(), credence, int.Parse(useCount), useTime, aorder.Agentid, aorder.Comid, 0, aorder.Id, new AsyncCallback(Completed), null);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (morder.Agentid > 0)
                                        {
                                            Agent_company acompany = new AgentCompanyData().GetAgentCompany(morder.Agentid);
                                            if (acompany != null)
                                            {
                                                //异步发送验证同步请求
                                                AsyncsendEventHandler mydelegate = new AsyncsendEventHandler(AsyncSend);
                                                mydelegate.BeginInvoke(acompany.Agent_updateurl.Trim(), credence, int.Parse(useCount), useTime, morder.Agentid, morder.Comid, 0, morder.Id, new AsyncCallback(Completed), null);
                                            }
                                        }
                                    }



                                    Response.Write("1");


                                    return;
                                }
                                else
                                {
                                    usenotice.rcontent = "fail 获取订单失败";
                                    new Api_mjld_AsyncUsenoticeData().EditUsenotice(usenotice);

                                    Response.Write("fail");

                                    return;
                                }
                            }
                            else
                            {
                                Response.Write("1");

                                return;
                            }
                        }
                        //退票推送
                        if (type == "back_order")
                        {
                            TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\mjldlog.txt", "back_order: " + xml);


                            //录入交互日志
                            ApiLog mapilog = new ApiLog
                            {
                                Id            = 0,
                                request_type  = "back_order",
                                Serviceid     = 3,
                                Str           = xml.Trim(),
                                Subdate       = DateTime.Now,
                                ReturnStr     = "",
                                ReturnSubdate = DateTime.Now,
                                Errmsg        = "",
                            };
                            int ins = new ApiLogData().EditLog(mapilog);


                            //2为退单成功 3为拒绝
                            string backStatus = root.SelectSingleNode("backStatus").InnerText;
                            //外部退单id
                            string outBackId = root.SelectSingleNode("outBackId").InnerText;
                            //成功退货数量
                            string backCount = root.SelectSingleNode("backCount").InnerText;


                            //本平台退单id
                            string backId = root.SelectSingleNode("backId").InnerText;
                            //推送时间
                            string postTime = root.SelectSingleNode("postTime").InnerText;

                            //根据mjldorderid判断是否成功处理过
                            Api_mjld_AsyncBacknotice sucnotice = new Api_mjld_AsyncBacknoticeData().GetSucApi_mjld_AsyncBacknotice(backId);
                            if (sucnotice == null)
                            {
                                Api_mjld_AsyncBacknotice backnotice = new Api_mjld_AsyncBacknotice
                                {
                                    id          = 0,
                                    mjldorderid = backId,
                                    orderid     = outBackId.ConvertTo <int>(0),
                                    backCount   = backCount.ConvertTo <int>(0),
                                    backStatus  = backStatus.ConvertTo <int>(0),
                                    postTime    = postTime,
                                    rcontent    = "",
                                    type        = type
                                };
                                int insBacknotice = new Api_mjld_AsyncBacknoticeData().EditBacknotice(backnotice);
                                backnotice.id = insBacknotice;

                                //易城系统订单
                                B2b_order morder = new B2bOrderData().GetOrderById(outBackId.ConvertTo <int>(0));
                                if (morder != null)
                                {
                                    //只有订单状态 为"退票处理中",才会进行退款操作
                                    if (morder.Order_state == (int)OrderStatus.WaitQuitOrder)
                                    {
                                        if (backStatus == "2")
                                        {
                                            OrderJsonData.QuitOrder(0, outBackId.ConvertTo <int>(0), morder.Pro_id, backCount.ConvertTo <int>(0), "");
                                        }
                                        //拒绝退款 则还原原来订单状态;订单备注中 提示“拒绝退款”
                                        if (backStatus == "3")
                                        {
                                            //判断是否有订单 绑定传入的订单
                                            B2b_order d_loldorder = new B2bOrderData().GetOldorderBybindingId(outBackId.ConvertTo <int>(0));
                                            if (d_loldorder != null)
                                            {
                                                d_loldorder.Order_state  = (morder.Order_remark).ConvertTo <int>(0);
                                                d_loldorder.Order_remark = "美景联动拒绝退票";

                                                new B2bOrderData().UpOrderStateAndRemark(d_loldorder.Id, d_loldorder.Order_state, d_loldorder.Order_remark);
                                            }

                                            morder.Order_state  = (morder.Order_remark).ConvertTo <int>(0);;
                                            morder.Order_remark = "美景联动拒绝退票";
                                            new B2bOrderData().UpOrderStateAndRemark(morder.Id, morder.Order_state, morder.Order_remark);
                                        }

                                        backnotice.rcontent = "1";
                                        new Api_mjld_AsyncBacknoticeData().EditBacknotice(backnotice);

                                        Response.Write("1");

                                        return;
                                    }
                                    else
                                    {
                                        backnotice.rcontent = "fail 订单状态应该为(退票处理中),可是现在为:" + EnumUtils.GetName((OrderStatus)morder.Order_state);
                                        new Api_mjld_AsyncBacknoticeData().EditBacknotice(backnotice);

                                        Response.Write("fail");

                                        return;
                                    }
                                }
                                else
                                {
                                    backnotice.rcontent = "fail 获取订单失败";
                                    new Api_mjld_AsyncBacknoticeData().EditBacknotice(backnotice);

                                    Response.Write("fail");

                                    return;
                                }
                            }
                            else
                            {
                                Response.Write("1");


                                return;
                            }
                        }
                    }
                    catch
                    {
                        Response.Write("fail");

                        return;
                    }
                }
            }
            catch
            {
                Response.Write("fail 接收参数为空");

                return;
            }
        }
Ejemplo n.º 11
0
        //投保单批量查询
        public string Hzins_orderSearch(string orderidstr)
        {
            string transNo = orderidstr;//(以后需要修改为渠道商订单号)易流水号,每次请求不能相同

            //根据订单号列表得到投保单号列表
            List <Api_hzins_OrderApplyResp_OrderExt> list = new Api_hzins_OrderApplyResp_OrderExtData().GetinsureNumsbyorderids(orderidstr);

            if (list == null)
            {
                return("");
            }
            else
            {
                if (list.Count == 0)
                {
                    return("");
                }
            }
            //需要对insureNos处理一下,形如:["15080546794635","15080544341441"]
            string insureNos = "";

            foreach (Api_hzins_OrderApplyResp_OrderExt ext in list)
            {
                insureNos += "\"" + ext.insureNum + "\",";
            }
            if (insureNos != "")
            {
                insureNos = insureNos.Substring(0, insureNos.Length - 1);
            }

            //签名,预签名数据:密钥+渠道商身份标识+交易流水号
            string sign = EncryptionHelper.ToMD5(signkey + partnerId + transNo, "UTF-8");

            sign = sign.ToLower();

            string s = "{" +
                       "\"transNo\":\"" + transNo + "\"," +
                       "\"partnerId\":" + partnerId + "," +
                       "\"sign\":\"" + sign + "\"," +
                       "\"insureNums\":[" + insureNos + "]," +
                       "\"applicant\":null," +
                       "\"insurant\":null," +
                       "\"idCard\":null," +
                       "\"userId\":null," +
                       "\"startTime\":null," +
                       "\"endTime\":null," +
                       "\"pageNum\":1," +
                       "\"pageSize\":" + list.Count +
                       "}";

            string str = new GetUrlData().HttpPostJson("http://channel.hzins.com/api/orderSearch", s.Trim());

            //录入和慧择网交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "orderSearch",
                Serviceid     = 2,
                Str           = s.Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = str,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "发送信息:" + s.Trim() + "<br>" + "返回信息:" + str);
            return(str);
        }
Ejemplo n.º 12
0
        private string signkey   = "146491#%##^11"; //签名秘钥,由慧择指定
        //承保
        public string Hzins_OrderApply(B2b_com_pro modelcompro, B2b_order modelb2border)
        {
            string transNo  = modelb2border.Id.ToString(); //(以后需要修改为渠道商订单号)交易流水号,每次请求不能相同
            string caseCode = modelcompro.Service_proid;   //(以后需要更改为正式产品)方案代码,每一款保险公司产品的方案代码都不相同,由慧择分配

            //签名,预签名数据:密钥+渠道商身份标识+交易流水号+方案代码
            string sign = EncryptionHelper.ToMD5(signkey + partnerId + transNo + caseCode, "UTF-8");

            sign = sign.ToLower();

            //根据订单号 得到慧择网 承保信息
            Api_hzins_OrderApplyReq_Application mapplication = new Api_hzins_OrderApplyReq_ApplicationData().GetOrderApplyReq_Application(modelb2border.Id);

            if (mapplication == null)
            {
                TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail1");
                return("fail");
            }
            Api_hzins_OrderApplyReq_applicantInfo mapplicationinfo = new Api_hzins_OrderApplyReq_applicantInfoData().GetOrderApplyReq_applicantInfo(modelb2border.Id);

            if (mapplicationinfo == null)
            {
                TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail2");
                return("fail");
            }
            List <Api_hzins_OrderApplyReq_insurantInfo> listinsurantInfo = new Api_hzins_OrderApplyReq_insurantInfoData().GetOrderApplyReq_insurantInfo(modelb2border.Id);

            if (listinsurantInfo == null)
            {
                TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail3");
                return("fail");
            }
            else
            {
                if (listinsurantInfo.Count == 0)
                {
                    TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "fail4");
                    return("fail");
                }
            }

            string s = "{" +
                       "\"partnerId\":" + partnerId + "," +
                       "\"transNo\":\"" + transNo + "\"," +
                       "\"caseCode\":\"" + caseCode + "\"," +
                       "\"sign\":\"" + sign + "\"," +
                       "\"applicationData\":{" +
                       "\"applicationDate\":\"" + mapplication.applicationDate + "\"," +
                       "\"startDate\":\"" + mapplication.startDate + "\"," +
                       "\"endDate\":\"" + mapplication.endDate + "\"" +
                       "}," +
                       "\"applicantInfo\":{" +
                       "\"cName\":\"" + mapplicationinfo.cName + "\"," +
                       "\"eName\":\"" + mapplicationinfo.eName + "\"," +
                       "\"cardType\":\"" + mapplicationinfo.cardType + "\"," +
                       "\"cardCode\":\"" + mapplicationinfo.cardCode + "\"," +
                       "\"sex\":" + mapplicationinfo.sex + "," +
                       "\"birthday\":\"" + mapplicationinfo.birthday + "\"," +
                       "\"mobile\":\"" + mapplicationinfo.mobile + "\"," +
                       "\"email\":\"" + mapplicationinfo.email + "\"," +
                       "\"jobInfo\":null" +
                       "}," +
                       "\"insurantInfos\":[";

            string insurantInfosstr = "";

            foreach (Api_hzins_OrderApplyReq_insurantInfo minsinfo in listinsurantInfo)
            {
                if (minsinfo != null)
                {
                    insurantInfosstr += "{" +
                                        "\"insurantId\":" + minsinfo.insurantId + "," +
                                        "\"cName\":\"" + minsinfo.cName + "\"," +
                                        "\"eName\":\"" + minsinfo.eName + "\"," +
                                        "\"sex\":" + minsinfo.sex + "," +
                                        "\"cardType\":" + minsinfo.cardType + "," +
                                        "\"cardCode\":\"" + minsinfo.cardCode + "\"," +
                                        "\"birthday\":\"" + minsinfo.birthday + "\"," +
                                        "\"relationId\":" + minsinfo.relationId + "," +
                                        "\"count\":" + minsinfo.count + "," +
                                        "\"singlePrice\":" + minsinfo.singlePrice + "," +
                                        "\"fltNo\":null," +
                                        "\"fltDate\":null," +
                                        "\"city\":\"null\"," +
                                        "\"tripPurposeId\":" + minsinfo.tripPurposeId + "," +
                                        "\"destination\":null," +
                                        "\"visaCity\":null," +
                                        "\"jobInfo\":null," +
                                        "\"mobile\":null" +
                                        "},";
                }
            }
            insurantInfosstr = insurantInfosstr.Substring(0, insurantInfosstr.Length - 1);

            s += insurantInfosstr + "]," +
                 "\"extendInfo\":{" +
                 "\"userId\":null," +
                 "\"email\":null," +
                 "\"userName\":null," +
                 "\"phone\":null" +
                 "}" +
                 "}";

            string str = new GetUrlData().HttpPostJson("http://channel.hzins.com/api/orderApply", s.Trim());

            //录入和慧择网交互日志
            ApiLog mapilog = new ApiLog
            {
                Id            = 0,
                request_type  = "orderApply",
                Serviceid     = 2,
                Str           = s.Trim(),
                Subdate       = DateTime.Now,
                ReturnStr     = str,
                ReturnSubdate = DateTime.Now,
                Errmsg        = "",
            };
            int ins = new ApiLogData().EditLog(mapilog);

            //TxtHelper.WriteFile("D:\\site\\b2betown\\ETS2.WebApp\\BaoxianLog.txt", "发送信息:" + s.Trim() + "<br>" + "返回信息:" + str);
            return(str);
        }