////----------正式参数--------------- //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); }
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); }
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); }
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); }
//退保 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); }
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); }
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); }
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; } } }
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(); }
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; } }
//投保单批量查询 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); }
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); }