public static void AsyncSend(string updateurl, string pno, int confirmnum, string confirmtime, int agentcomid, int comidd1, int validateticketlogid, int aorderid) { Agent_asyncsendlog log = new Agent_asyncsendlog { Id = 0, Pno = pno, Num = confirmnum, Sendtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), Confirmtime = DateTime.Parse(confirmtime), Issendsuc = 0,//0失败;1成功 Agentupdatestatus = (int)AgentUpdateStatus.Fail, Agentcomid = agentcomid, Comid = comidd1, Remark = "", Issecondsend = 0, Platform_req_seq = (1000000000 + agentcomid).ToString() + DateTime.Now.ToString("yyyyMMddhhssmm") + CommonFunc.CreateNum(6),//请求流水号 Request_content = "", Response_content = "", b2b_etcket_logid = validateticketlogid }; int inslog = new Agent_asyncsendlogData().EditLog(log); log.Id = inslog; try { //获得分销商信息 Agent_company agentinfo = new AgentCompanyData().GetAgentCompany(agentcomid); if (agentinfo != null) { string agent_updateurl = agentinfo.Agent_updateurl; #region 糯米分销 if (agentinfo.Agent_type == (int)AgentCompanyType.NuoMi)//糯米分销 { string re = new GetUrlData().HttpPost(updateurl, ""); XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + re + "}"); XmlElement root = doc.DocumentElement; string info = root.SelectSingleNode("info").InnerText; //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; if (info == "success") { string errCode = root.SelectSingleNode("res/errCode").InnerText;//分销商更新结果 if (errCode == "0") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } else { log.Remark = info; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } #endregion #region 一般分销 else //一般分销 { /*根据订单号得到分销商订单请求记录(当前需要得到原订单请求流水号)*/ List <Agent_requestlog> listagent_rlog = new Agent_requestlogData().GetAgent_requestlogByOrdernum(aorderid.ToString(), "add_order", "1"); if (listagent_rlog == null) { log.Remark = "根据订单号得到分销商订单请求记录失败";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return; } if (listagent_rlog.Count == 0) { log.Remark = "根据订单号得到分销商订单请求记录失败.";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return; } /*验证通知发送内容*/ string sbuilder = string.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<business_trans>" + "<request_type>sync_order</request_type>" + //<!--验证同步--> "<req_seq>{0}</req_seq>" + //<!--原订单请求流水号--> "<platform_req_seq>{1}</platform_req_seq>" + //<!--平台请求流水号--> "<order>" + //<!--订单信息--> "<code>{5}</code>" + //<!-- 验证电子码 y--> "<order_num>{2}</order_num>" + //<!-- 订单号 y--> "<num>{3}</num>" + //<!-- 使用张数 --> "<use_time>{4}</use_time>" + //<!-- 使用时间 --> "</order>" + "</business_trans>", listagent_rlog[0].Req_seq, log.Platform_req_seq, aorderid, confirmnum, CommonFunc.ConvertDateTimeInt(DateTime.Parse(confirmtime)), pno); #region 分销通知发送方式post if (agentinfo.inter_sendmethod.ToLower() == "post") { string re = ""; if (agentcomid == 6490) { re = new GetUrlData().HttpPost(updateurl, sbuilder); updateurl += "?xml=" + sbuilder;//只为记录 } else { updateurl += "?xml=" + sbuilder; re = new GetUrlData().HttpPost(updateurl, ""); } //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; log.Remark = re.Replace("'", "''");//单引号替换为'',双引号不用处理; if (re.Length >= 7) { re = re.Substring(0, 7); } if (re == "success") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } #endregion #region 分销通知发送方式get else { if (updateurl.IndexOf('?') > -1) { updateurl += "&xml=" + sbuilder; } else { updateurl += "?xml=" + sbuilder; } string re = new GetUrlData().HttpGet(updateurl); //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; log.Remark = re.Replace("'", "''");//单引号替换为'',双引号不用处理; if (re.Length >= 7) { re = re.Substring(0, 7); } if (re == "success") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } #endregion } #endregion } else { log.Remark = "分销商获取失败"; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } catch (Exception e) { log.Id = inslog; log.Remark = e.Message.Replace("'", "''");//单引号替换为'',双引号不用处理 new Agent_asyncsendlogData().EditLog(log); } }
// 重发, public string Smsresend(Lvmama_reqlog mlog, Agent_company agentinfo) { var response = new backRefund(); response.uid = agentinfo.Lvmama_uid; try { int organization = agentinfo.Id; #region 把分销商发送过来的请求记入数据库日志表2 agent_requestlog Agent_requestlog reqlog = new Agent_requestlog() { Id = 0, Organization = organization, Encode_requeststr = "", Decode_requeststr = _requestParam, Request_time = DateTime.Now, Encode_returnstr = "", Decode_returnstr = "", Return_time = DateTime.Parse("1970-01-01 00:00:00"), Errmsg = "", Request_type = "sms_resend", Req_seq = "", Ordernum = "", Is_dealsuc = 0, Is_second_receivereq = 0, Request_ip = CommonFunc.GetRealIP() }; int reqlogid = new Agent_requestlogData().Editagent_reqlog(reqlog); reqlog.Id = reqlogid; #endregion var data = JsonConvert.DeserializeObject <sms_resendmodel>(_requestParam); if (data.uid == "") { response.uid = agentinfo.Lvmama_uid; response.status = "1"; response.msg = "数据解析失败"; return(EditLvmamalog_Order(response, mlog, reqlog)); } else { string uid = data.uid; string password = data.password; string sign = data.sign; string timestamp = data.timestamp; string extId = data.extId; var vasmodel = new SendEticketData().SendEticket(extId.ConvertTo <int>(0), 2);//重发电子码 if (vasmodel == "OK") { response.status = "0"; response.msg = "重发成功"; return(EditLvmamalog_Order(response, mlog, null)); } else { response.status = "14"; response.msg = vasmodel; return(EditLvmamalog_Order(response, mlog, null)); } } } catch (Exception ex) { response.status = "2"; response.msg = "异常错误"; return(EditLvmamalog_Order(response, mlog, null)); } }
private string Cancel_order(Agent_requestlog reqlog, OrderCancelRequestBody body, string organization, Meituan_reqlog mlog) { var response = new OrderCancelResponse(); response.partnerId = int.Parse(agentinfo.mt_partnerId); string mtorderid = body.orderId.ToString(); string order_num = body.partnerOrderId; string num = body.refundQuantity.ToString(); mlog.mtorderid = mtorderid; mlog.ordernum = order_num; #region 条件判断 if (order_num.ConvertTo <int>(0) == 0) { response.code = 699; response.describe = "订单号格式有误"; return(EditMTlog_Err(response, mlog, reqlog)); } if (num.ConvertTo <int>(0) == 0) { response.code = 606; response.describe = "退票张数格式有误"; return(EditMTlog_Err(response, mlog, reqlog)); } //判断订单是否是当前分销的订单 bool isselforder = new Agent_requestlogData().Getisselforder(organization, order_num); if (isselforder == false) { response.code = 699; response.describe = "订单并非此分销的订单"; return(EditMTlog_Err(response, mlog, reqlog)); } #endregion B2b_order morder = new B2bOrderData().GetOrderById(order_num.ConvertTo <int>(0)); if (morder != null) { if (morder.Pro_id > 0) { B2b_com_pro pro = new B2bComProData().GetProById(morder.Pro_id.ToString()); if (pro == null) { response.code = 607; response.describe = "产品不存在"; return(EditMTlog_Err(response, mlog, reqlog)); } else { if (pro.Source_type == 2)//产品来源:1.系统自动生成2.倒码产品 { response.code = 607; response.describe = "倒码产品不支持接口退票"; return(EditMTlog_Err(response, mlog, reqlog)); } else { //得到订单的验证方式:0(一码多验);1(一码一验), #region 一码多验 退票 按订单号退票,或者外部接口订单 if (morder.yanzheng_method == 0 || pro.Source_type == 3) { string data = OrderJsonData.QuitOrder(pro.Com_id, order_num.ConvertTo <int>(0), pro.Id, num.ConvertTo <int>(0), "分销外部接口退票"); XmlDocument retdoc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + data + "}"); XmlElement retroot = retdoc.DocumentElement; string type = retroot.SelectSingleNode("type").InnerText; string msg = retroot.SelectSingleNode("msg").InnerText; if (type == "100")//取消订单成功 { response.code = 200; response.describe = "success"; response.body = new OrderCancelResponseBody { orderId = body.orderId, refundId = body.refundId, partnerOrderId = body.partnerOrderId, requestTime = reqlog.Request_time.ToString("yyyy-MM-dd HH:mm:ss"), responseTime = reqlog.Return_time.ToString("yyyy-MM-dd HH:mm:ss") }; reqlog.Ordernum = order_num; reqlog.Is_dealsuc = 1; return(EditMTlog_Err(response, mlog, reqlog)); } else//取消订单失败 { response.code = 606; response.describe = msg; return(EditMTlog_Err(response, mlog, reqlog)); } } #endregion #region 一码一验 ,或非接口产品 else { response.code = 604; response.describe = "订单验码方式不支持"; return(EditMTlog_Err(response, mlog, reqlog)); } #endregion } } } else { response.code = 699; response.describe = "订单中产品不存在"; return(EditMTlog_Err(response, mlog, reqlog)); } } else { response.code = 699; response.describe = "订单不存在"; return(EditMTlog_Err(response, mlog, reqlog)); } }
public string AsyncSend(Agent_asyncsendlog log1) { lock (lockobj) { Agent_asyncsendlog log = new Agent_asyncsendlog { Id = 0, Pno = log1.Pno, Num = log1.Num, Sendtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), Confirmtime = log1.Confirmtime, Issendsuc = 0,//0失败;1成功 Agentupdatestatus = (int)AgentUpdateStatus.Fail, Agentcomid = log1.Agentcomid, Comid = log1.Comid, Remark = "", Issecondsend = 1, Platform_req_seq = log1.Platform_req_seq,//平台流水号,同一次验证的平台流水号相同,分销商根据平台流水号判断是否是同一次验证 Request_content = "", Response_content = "", b2b_etcket_logid = log1.b2b_etcket_logid }; int inslog = new Agent_asyncsendlogData().EditLog(log); log.Id = inslog; try { var eticketinfo = new B2bEticketData().GetEticketDetail(log1.Pno); if (eticketinfo.Agent_id > 0)//分销商电子票,需要发送验证同步请求 { //获得分销商信息 Agent_company agentinfo = new AgentCompanyData().GetAgentCompany(log1.Agentcomid); if (agentinfo != null) { string agent_updateurl = agentinfo.Agent_updateurl; #region 糯米分销 if (agentinfo.Agent_type == (int)AgentCompanyType.NuoMi)//糯米分销 { //查询站外码状态 string username = agentinfo.Agent_auth_username; //百度糯米用户名 string token = agentinfo.Agent_auth_token; //百度糯米token string code = eticketinfo.Pno; //券码 string bindcomname = agentinfo.Agent_bindcomname; //供应商名称 string updateurl = agent_updateurl + "?auth={\"userName\":\"" + username + "\",\"token\":\"" + token + "\"}&code=" + code + "&userName="******"&dealId=&phone=";; string re = new GetUrlData().HttpPost(updateurl, ""); XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + re + "}"); XmlElement root = doc.DocumentElement; string info = root.SelectSingleNode("info").InnerText; //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; if (info == "success") { string errCode = root.SelectSingleNode("res/errCode").InnerText;//分销商更新结果 if (errCode == "0") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); return("糯米成功"); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return("糯米失败:" + log.Agentupdatestatus); } } else { log.Remark = info; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return("糯米失败:" + log.Remark); } } #endregion #region 一般分销推送验证同步请求 else { //一般分销推送验证同步请求 if (agent_updateurl.Trim() == "" || agentinfo.Inter_deskey == "") { log.Remark = "分销商验证同步通知或秘钥没提供";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return(log.Remark); } if (eticketinfo.Oid == 0) { log.Remark = "电子票对应的订单号为0";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return(log.Remark); } //a订单:原分销向指定商户提交的订单;b订单:指定商户下的绑定分销向拥有产品的商户提交的订单 //电子票表中记录的Oid是b订单 //判断b订单 是否 属于某个a订单 B2b_order loldorder = new B2bOrderData().GetOldorderBybindingId(eticketinfo.Oid); if (loldorder != null) { eticketinfo.Oid = loldorder.Id; } /*根据订单号得到分销商订单请求记录(当前需要得到原订单请求流水号)*/ List <Agent_requestlog> listagent_rlog = new Agent_requestlogData().GetAgent_requestlogByOrdernum(eticketinfo.Oid.ToString(), "add_order", "1"); if (listagent_rlog == null) { log.Remark = "根据订单号得到分销商订单请求记录失败";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return(log.Remark); } if (listagent_rlog.Count == 0) { log.Remark = "根据订单号得到分销商订单请求记录失败.";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return(log.Remark); } /*验证通知发送内容*/ string sbuilder = string.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<business_trans>" + "<request_type>sync_order</request_type>" + //<!--验证同步--> "<req_seq>{0}</req_seq>" + //<!--原订单请求流水号--> "<platform_req_seq>{1}</platform_req_seq>" + //<!--平台请求流水号--> "<order>" + //<!--订单信息--> "<order_num>{2}</order_num>" + //<!-- 订单号 y--> "<num>{3}</num>" + //<!-- 使用张数 --> "<use_time>{4}</use_time>" + //<!-- 使用时间 --> "</order>" + "</business_trans>", listagent_rlog[0].Req_seq, log.Platform_req_seq, eticketinfo.Oid, log.Num, ConvertDateTimeInt(log.Confirmtime)); string updateurl = agent_updateurl + "?xml=" + sbuilder; string re = new GetUrlData().HttpPost(updateurl, ""); //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; log.Remark = re.Replace("'", "''");//单引号替换为'',双引号不用处理; if (re.Length >= 7) { re = re.Substring(0, 7); } if (re == "success") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); return("成功"); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return(re); } } #endregion } else { return("分销商信息获取失败"); } } else { return("直销订单无需发送验证通知"); } } catch (Exception e) { log.Id = inslog; log.Remark = e.Message.Replace("'", "''");//单引号替换为'',双引号不用处理 new Agent_asyncsendlogData().EditLog(log); return(log.Remark); } } }
/// 订单退票 public string Getorderrefund(Meituan_reqlog mlog) { var response = new OrderCancelResponse(); response.partnerId = int.Parse(agentinfo.mt_partnerId); try { int organization = agentinfo.Id; #region 把分销商发送过来的请求记入数据库日志表2 agent_requestlog Agent_requestlog reqlog = new Agent_requestlog() { Id = 0, Organization = organization, Encode_requeststr = "", Decode_requeststr = _requestParam, Request_time = DateTime.Now, Encode_returnstr = "", Decode_returnstr = "", Return_time = DateTime.Parse("1970-01-01 00:00:00"), Errmsg = "", Request_type = "cancel_order", Req_seq = "", Ordernum = "", Is_dealsuc = 0, Is_second_receivereq = 0, Request_ip = CommonFunc.GetRealIP() }; int reqlogid = new Agent_requestlogData().Editagent_reqlog(reqlog); reqlog.Id = reqlogid; #endregion var data = JsonConvert.DeserializeObject <OrderCancelRequest>(_requestParam); if (data.body == null) { response.code = 699; response.describe = "数据解析失败"; return(EditMTlog_Err(response, mlog, reqlog)); } else { OrderCancelRequestBody body = data.body; string mtorderid = body.orderId.ToString(); string order_num = body.partnerOrderId; int num = body.refundQuantity; //日志表2 判断是否是二次发送相同的请求 int is_secondreq = new Agent_requestlogData().Is_secondreq(organization.ToString(), mtorderid, reqlog.Request_type); #region 把发送的请求类型,请求流水号,订单号,是否是二次发送相同的请求录入数据库 日志表2 reqlog.Req_seq = mtorderid; reqlog.Ordernum = order_num; reqlog.Is_second_receivereq = is_secondreq; new Agent_requestlogData().Editagent_reqlog(reqlog); #endregion #region 编辑日志表1 mlog.mtorderid = mtorderid; mlog.ordernum = order_num; mlog.issecond_req = is_secondreq; new Meituan_reqlogData().EditReqlog(mlog); #endregion if (is_secondreq == 1) { //获取处理成功的请求信息:如果没有则重新操作 Agent_requestlog suclog = new Agent_requestlogData().GetAgent_cancelorderlogByReq_seq(organization.ToString(), mtorderid, 1); if (suclog != null) { //return suclog.Decode_returnstr; response = (OrderCancelResponse)JsonConvert.DeserializeObject(suclog.Decode_returnstr, typeof(OrderCancelResponse)); reqlog.Is_dealsuc = 1; //reqlog.Ordernum = suclog.Ordernum; mlog.ordernum = suclog.Ordernum; return(EditMTlog_Err(response, mlog, reqlog)); } else { return(Cancel_order(reqlog, body, organization.ToString(), mlog)); } } else { return(Cancel_order(reqlog, body, organization.ToString(), mlog)); } } } catch (Exception ex) { response.code = 699; response.describe = "异常错误"; return(EditMTlog_Err(response, mlog, null)); } }
/// 产品查询 public string Getorderquery(Meituan_reqlog mlog) { var response = new OrderQueryResponse(); response.partnerId = int.Parse(agentinfo.mt_partnerId); try { var data = JsonConvert.DeserializeObject <OrderQueryRequest>(_requestParam); if (data.body == null) { response.code = 399; response.describe = "Body数据解析失败"; return(EditMTlog_Err(response, mlog)); } else { OrderQueryRequestBody body = data.body; string mtorderid = body.orderId.ToString(); //如果合作商订单Id不存在,则查询美团订单创建日志 if (body.partnerOrderId == "") { Meituan_reqlog mtOrderCrateSucLog = new Meituan_reqlogData().GetMtOrderCrateLogByMtorder(body.orderId.ToString(), "200"); body.partnerOrderId = mtOrderCrateSucLog.ordernum; } string ordernum = body.partnerOrderId; mlog.mtorderid = mtorderid; mlog.ordernum = ordernum; int organization = agentinfo.Id; //判断分销商查询订单是否是 自己发送的接口订单 Agent_requestlog mrequestlogg = new Agent_requestlogData().GetAgent_addorderlogByReq_seq(organization.ToString(), mtorderid); if (mrequestlogg == null) { response.code = 301; response.describe = "当前查询的订单不存在"; return(EditMTlog_Err(response, mlog)); } if (mrequestlogg.Is_dealsuc == 0) { response.code = 301; response.describe = "当前查询的订单不存在"; return(EditMTlog_Err(response, mlog)); } if (mtorderid.Trim() == "") { response.code = 301; response.describe = "美团订单号 不可为空"; return(EditMTlog_Err(response, mlog)); } B2b_order morder = new B2bOrderData().GetOrderByAgentRequestReqSeq(mtorderid); if (morder != null) { if (morder.Pro_id > 0) { B2b_com_pro pro = new B2bComProData().GetProById(morder.Pro_id.ToString()); if (pro == null) { response.code = 399; response.describe = "产品不存在"; return(EditMTlog_Err(response, mlog)); } else { #region 主要用途 判断是否是商家自己产品,如果为外来接口产品,暂时不售卖 //判断产品码来源 (4分销倒过来的产品 1系统自动生成产品 2倒码产品 判断分销是否是 自己发码;3外来接口产品暂时不售卖) int prosourtype = pro.Source_type; //if (prosourtype == 3)//外来接口产品,暂时只有阳光接口产品(需要手机号) //{ // //暂时只售卖商家自己产品,主要是产品有效期 需要另外通过外部接口获取,过于麻烦 // response.code = 301; // response.describe = "暂时只可查询商家自己产品"; // return EditMTlog_Err(response, mlog); //} if (prosourtype == 4) //分销导入产品; { int old_proid = new B2bComProData().GetOldproidById(morder.Pro_id.ToString()); //绑定产品的原始编号 if (old_proid == 0) { response.code = 399; response.describe = "分销导入产品的原始产品编号没有查到"; return(EditMTlog_Err(response, mlog)); } else { prosourtype = new B2bComProData().GetProSource_typeById(old_proid.ToString()); //if (prosourtype == 3) //{ // //暂时只售卖商家自己产品,主要是产品有效期 需要另外通过外部接口获取,过于麻烦 // response.code = 300; // response.describe = "暂时只可查询商家自己产品"; // return EditMTlog_Err(response, mlog); //} } } #endregion #region 产品有效期 //经过以上赋值prosourtype,只可能2个值:1系统自动生成码产品;2倒码产品 DateTime pro_start = pro.Pro_start; DateTime pro_end = pro.Pro_end; if (prosourtype == 2) //倒码产品 { } if (prosourtype == 1) //系统自动生成码产品 { #region 产品有效期判定(微信模板--门票订单预订成功通知 中也有用到) string provalidatemethod = pro.ProValidateMethod; int appointdate = pro.Appointdata; int iscanuseonsameday = pro.Iscanuseonsameday; //DateTime pro_end = modelcompro.Pro_end; if (provalidatemethod == "2")//按指定有效期 { if (appointdate == (int)ProAppointdata.NotAppoint) { } else if (appointdate == (int)ProAppointdata.OneWeek) { pro_end = DateTime.Now.AddDays(7); } else if (appointdate == (int)ProAppointdata.OneMonth) { pro_end = DateTime.Now.AddMonths(1); } else if (appointdate == (int)ProAppointdata.ThreeMonth) { pro_end = DateTime.Now.AddMonths(3); } else if (appointdate == (int)ProAppointdata.SixMonth) { pro_end = DateTime.Now.AddMonths(6); } else if (appointdate == (int)ProAppointdata.OneYear) { pro_end = DateTime.Now.AddYears(1); } //如果指定有效期大于产品有效期,则按产品有效期 if (pro_end > pro.Pro_end) { pro_end = pro.Pro_end; } } else //按产品有效期 { pro_end = pro.Pro_end; } //DateTime pro_start = modelcompro.Pro_start; DateTime nowday = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); if (iscanuseonsameday == 1) //当天可用 { if (nowday < pro_start) //当天日期小于产品起始日期 { pro_start = pro.Pro_start; } else { pro_start = nowday; } } else //当天不可用 { if (nowday < pro_start)//当天日期小于产品起始日期 { pro_start = pro.Pro_start; } else { pro_start = nowday.AddDays(1); } } #endregion } #endregion #region 购买数量 可使用数量 使用数量 退票数量 出票时间 电子票号(列表) string all_pno = ""; //全部电子码 string keyong_pno = ""; //可用电子码 string add_time = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss"); int buy_num = 0; int keyong_num = 0; int consume_num = 0; int tuipiao_num = morder.Cancelnum; if (prosourtype == 1)//系统自动生成码产品 { int noworderid = morder.Id; //判断是否含有绑定订单 if (morder.Bindingagentorderid > 0) { noworderid = morder.Bindingagentorderid; } //根据订单号得到电子票信息 List <B2b_eticket> meticketlist = new B2bEticketData().GetEticketListByOrderid(noworderid); if (meticketlist == null) { response.code = 302; response.describe = "根据订单号查询电子票信息失败"; return(EditMTlog_Err(response, mlog)); } else { if (meticketlist.Count == 0) { response.code = 302; response.describe = "根据订单号查询电子票信息失败"; return(EditMTlog_Err(response, mlog)); } else { foreach (B2b_eticket meticket in meticketlist) { if (meticket != null) { buy_num += meticket.Pnum; keyong_num += meticket.Use_pnum; consume_num += meticket.Pnum - meticket.Use_pnum; all_pno += meticket.Pno + ","; if (meticket.Use_pnum > 0) { keyong_pno += meticket.Pno + ","; } } } if (all_pno.Length > 0) { all_pno = all_pno.Substring(0, all_pno.Length - 1); } if (keyong_pno.Length > 0) { keyong_pno = keyong_pno.Substring(0, keyong_pno.Length - 1); } } } } else if (prosourtype == 3) { if (pro.Serviceid == 4) { //如果是接口产品 B2b_company commanage = B2bCompanyData.GetAllComMsg(pro.Com_id); WlGetProInfoDealRequestData wldata = new WlGetProInfoDealRequestData(commanage.B2bcompanyinfo.wl_PartnerId, commanage.B2bcompanyinfo.wl_userkey); var wlorderinfo = wldata.SearchWlOrderData(pro.Com_id, 0, "", morder.Id); if (wlorderinfo != null) { all_pno = wlorderinfo.vouchers; buy_num = wlorderinfo.quantity; keyong_num = wlorderinfo.quantity - wlorderinfo.usedQuantity; consume_num = wlorderinfo.usedQuantity;; } } } else //倒码产品 { } #endregion #region 实名制类型 真是姓名 状态 string real_name_type = pro.Realnametype.ToString(); string real_name = morder.U_name; string statusdesc = EnumUtils.GetName((OrderStatus)morder.Order_state); #endregion #region 手机号 根据订单号得到 分销商发送接口请求记录 string mobile = ""; Agent_requestlog mrequestlog = new Agent_requestlogData().GetAgent_addorderlogByOrderId(morder.Id.ToString(), 1); if (mrequestlog == null) { response.code = 399; response.describe = "根据订单号获得分销商接口发送请求记录失败"; return(EditMTlog_Err(response, mlog)); } #endregion int orderstate = morder.Order_state; // int mt_orderstatus = (int)Meituan_orderStatus.CreateFail; if (orderstate == (int)OrderStatus.HasSendCode) { mt_orderstatus = (int)Meituan_orderStatus.CreateSuc; } else if (orderstate == (int)OrderStatus.HasUsed) { mt_orderstatus = (int)Meituan_orderStatus.PaySuc; } else { if (orderstate == (int)PayStatus.HasPay) { mt_orderstatus = (int)Meituan_orderStatus.PaySuc; } if (orderstate == (int)PayStatus.NotPay) { mt_orderstatus = (int)Meituan_orderStatus.PayFailed; } if (orderstate == (int)PayStatus.WaitPay) { mt_orderstatus = (int)Meituan_orderStatus.Paying; } } response.code = 200; response.describe = "success"; /************现在只有一单一码的情况************ * required 凭证状态 见映射表<凭证码状态> * 0 未使用 * 1 已使用 * 2 已退款 * 3 已废弃 对应的门票还未消费,但是此凭证码作废了 * ************************/ List <Voucher> voucherlist = new List <Voucher>(); //电子票未使用 if (keyong_num == buy_num) { Voucher vou = new Voucher { voucher = all_pno, voucherPics = "", voucherInvalidTime = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss"), quantity = keyong_num, status = 0 }; voucherlist.Add(vou); } else { //电子票已使用 if (tuipiao_num == 0) { string yanzhengtime = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss"); //得到电子票最近的一条验证成功日志 B2b_eticket_log lastyanzhengsuclog = new B2bEticketLogData().GetlastyanzhengsuclogByPno(all_pno); if (lastyanzhengsuclog != null) { yanzhengtime = lastyanzhengsuclog.Actiondate.ToString("yyyy-MM-dd HH:mm:ss"); } Voucher vou = new Voucher { voucher = all_pno, voucherPics = "", voucherInvalidTime = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss"), quantity = consume_num, status = 1 }; voucherlist.Add(vou); } else { //电子票退票 if (tuipiao_num != buy_num) { Voucher vou = new Voucher { voucher = all_pno, voucherPics = "", voucherInvalidTime = morder.Backtickettime.ToString("yyyy-MM-dd HH:mm:ss"), quantity = keyong_num, status = 2 }; voucherlist.Add(vou); } //电子票废弃 else { Voucher vou = new Voucher { voucher = all_pno, voucherPics = "", voucherInvalidTime = morder.Backtickettime.ToString("yyyy-MM-dd HH:mm:ss"), quantity = keyong_num, status = 3 }; voucherlist.Add(vou); } } } response.body = new OrderQueryResponseBody { orderId = body.orderId, partnerOrderId = body.partnerOrderId, orderStatus = mt_orderstatus, orderQuantity = morder.U_num, usedQuantity = (consume_num - morder.Cancelnum), refundedQuantity = morder.Cancelnum, voucherType = 2, voucherList = voucherlist }; return(EditMTlog_Err(response, mlog)); } } else { response.code = 301; response.describe = "订单中产品不存在"; return(EditMTlog_Err(response, mlog)); } } else { response.code = 301; response.describe = "订单不存在"; return(EditMTlog_Err(response, mlog)); } } } catch (Exception ex) { response.code = 399; response.describe = "异常错误"; return(EditMTlog_Err(response, mlog)); } }
public static void AsyncSend(string updateurl, string pno, int confirmnum, string confirmtime, int agentcomid, int comidd1, int validateticketlogid, int aorderid) { Agent_asyncsendlog log = new Agent_asyncsendlog { Id = 0, Pno = pno, Num = confirmnum, Sendtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), Confirmtime = DateTime.Parse(confirmtime), Issendsuc = 0,//0失败;1成功 Agentupdatestatus = (int)AgentUpdateStatus.Fail, Agentcomid = agentcomid, Comid = comidd1, Remark = "", Issecondsend = 0, Platform_req_seq = (1000000000 + agentcomid).ToString() + DateTime.Now.ToString("yyyyMMddhhssmm") + CommonFunc.CreateNum(6),//请求流水号 Request_content = "", Response_content = "", b2b_etcket_logid = validateticketlogid }; int inslog = new Agent_asyncsendlogData().EditLog(log); log.Id = inslog; try { //获得分销商信息 Agent_company agentinfo = new AgentCompanyData().GetAgentCompany(agentcomid); if (agentinfo != null) { string agent_updateurl = agentinfo.Agent_updateurl; #region 糯米分销 if (agentinfo.Agent_type == (int)AgentCompanyType.NuoMi)//糯米分销 { string re = new GetUrlData().HttpPost(updateurl, ""); XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + re + "}"); XmlElement root = doc.DocumentElement; string info = root.SelectSingleNode("info").InnerText; //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; if (info == "success") { string errCode = root.SelectSingleNode("res/errCode").InnerText;//分销商更新结果 if (errCode == "0") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } else { log.Remark = info; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } #endregion #region 驴妈妈 else if (agentinfo.Agent_type == (int)AgentCompanyType.Lvmama) { /*根据订单号得到分销商订单请求记录(当前需要得到原订单请求流水号)*/ Lvmama_reqlog LvmamaOrderCrateSucLog = new lvmama_reqlogData().GetLvmama_OrderpayreqlogBySelforderid(aorderid, "0"); if (LvmamaOrderCrateSucLog == null) { log.Remark = "根据订单号得到分销商订单请求记录失败";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return; } B2b_order morder = new B2bOrderData().GetOrderById(aorderid); if (morder == null) { log.Remark = "根据订单号查询订单失败.";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return; } string state = "1"; if (morder.U_num > confirmnum) { state = "2"; } else if (confirmnum == morder.U_num) { state = "3"; } else { state = "1"; } var lvmamadata = new LVMAMA_Data(agentinfo.Lvmama_uid, agentinfo.Lvmama_password, agentinfo.Lvmama_Apikey); //初始的时候没有sign值,等组合后下面生成加密文件 var hexiaojson = lvmamadata.usedticketscallback_json(LvmamaOrderCrateSucLog.mtorderid, agentinfo.Lvmama_uid, agentinfo.Lvmama_password, state, "", DateTime.Now.ToString("yyyyMMddHHmmss"), confirmnum.ToString()); #region 签名验证 string Md5Sign = lvmamadata.usedticketscallbackmd5(hexiaojson); string afterSign = lvmamadata.lumamasign(Md5Sign, agentinfo.Lvmama_Apikey); #endregion hexiaojson.sign = afterSign; var asynnoticecall = lvmamadata.useConsumeNotify(hexiaojson, agentinfo.Id); return; } #endregion #region 一般分销 else //一般分销 { #region 如果是美团分销,则向美团发送验证通知 Agent_company mtagentcompany = new AgentCompanyData().GetAgentCompany(agentinfo.Id); if (mtagentcompany != null) { if (mtagentcompany.mt_partnerId != "") { B2b_order ordermodel = new B2bOrderData().GetOrderById(aorderid); Meituan_reqlog meituanlogg = new Meituan_reqlogData().GetMt_OrderpayreqlogBySelforderid(ordermodel.Id, "200"); if (meituanlogg == null) { LogHelper.RecordSelfLog("Erro", "meituan", "美团验证通知发送失败:查询美团支付成功订单失败"); } else { #region 订单电子票使用情况 string all_pno = ""; //全部电子码 string keyong_pno = ""; //可用电子码 int buy_num = 0; int keyong_num = 0; int consume_num = 0; int tuipiao_num = ordermodel.Cancelnum; #endregion string meituancontent = "{" + "\"partnerId\": " + mtagentcompany.mt_partnerId + "," + "\"body\": " + "{" + "\"orderId\": " + meituanlogg.mtorderid + "," + "\"partnerOrderId\": \"" + aorderid + "\"," + "\"quantity\": " + ordermodel.U_num + "," + "\"usedQuantity\": " + confirmnum + "," + "\"refundedQuantity\": " + tuipiao_num + "," + "\"voucherList\": " + "[{" + "\"voucher\":\"" + pno + "\"," + "\"voucherPics\":\"\"," + "\"voucherInvalidTime\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"," + "\"quantity\":" + confirmnum + "," + "\"status\":1" + //4.10 凭证码状态:0 未使用;1 已使用;2 已退款;3 已废弃 对应的门票还未消费,但是此凭证码作废了 "}]" + "}" + "}"; OrderConsumeNotice mrequest = (OrderConsumeNotice)JsonConvert.DeserializeObject(meituancontent, typeof(OrderConsumeNotice)); ETS2.PM.Service.Meituan.Data.ReturnResult r = new MeiTuanInter(mtagentcompany.mt_partnerId, mtagentcompany.mt_secret, mtagentcompany.mt_client).ConsumeNotify(mrequest, mtagentcompany.Id); } } } #endregion /*根据订单号得到分销商订单请求记录(当前需要得到原订单请求流水号)*/ List <Agent_requestlog> listagent_rlog = new Agent_requestlogData().GetAgent_requestlogByOrdernum(aorderid.ToString(), "add_order", "1"); if (listagent_rlog == null) { log.Remark = "根据订单号得到分销商订单请求记录失败";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return; } if (listagent_rlog.Count == 0) { log.Remark = "根据订单号得到分销商订单请求记录失败.";//单引号替换为'',双引号不用处理; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); return; } /*验证通知发送内容*/ string sbuilder = string.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<business_trans>" + "<request_type>sync_order</request_type>" + //<!--验证同步--> "<req_seq>{0}</req_seq>" + //<!--原订单请求流水号--> "<platform_req_seq>{1}</platform_req_seq>" + //<!--平台请求流水号--> "<order>" + //<!--订单信息--> "<code>{5}</code>" + //<!-- 验证电子码 y--> "<order_num>{2}</order_num>" + //<!-- 订单号 y--> "<num>{3}</num>" + //<!-- 使用张数 --> "<use_time>{4}</use_time>" + //<!-- 使用时间 --> "</order>" + "</business_trans>", listagent_rlog[0].Req_seq, log.Platform_req_seq, aorderid, confirmnum, CommonFunc.ConvertDateTimeInt(DateTime.Parse(confirmtime)), pno); #region 分销通知发送方式post if (agentinfo.inter_sendmethod.ToLower() == "post") { string re = ""; if (agentcomid == 6490) { re = new GetUrlData().HttpPost(updateurl, sbuilder); updateurl += "?xml=" + sbuilder;//只为记录 } else { updateurl += "?xml=" + sbuilder; re = new GetUrlData().HttpPost(updateurl, ""); } //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; log.Remark = re.Replace("'", "''");//单引号替换为'',双引号不用处理; if (re.Length >= 7) { re = re.Substring(0, 7); } if (re == "success") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } #endregion #region 分销通知发送方式get else { if (updateurl.IndexOf('?') > -1) { updateurl += "&xml=" + sbuilder; } else { updateurl += "?xml=" + sbuilder; } string re = new GetUrlData().HttpGet(updateurl); //只要返回了数据,则是发送成功 log.Id = inslog; log.Issendsuc = 1; log.Request_content = updateurl; log.Response_content = re; log.Remark = re.Replace("'", "''");//单引号替换为'',双引号不用处理; if (re.Length >= 7) { re = re.Substring(0, 7); } if (re == "success") { log.Agentupdatestatus = (int)AgentUpdateStatus.Suc; new Agent_asyncsendlogData().EditLog(log); } else { log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } #endregion } #endregion } else { log.Remark = "分销商获取失败"; log.Agentupdatestatus = (int)AgentUpdateStatus.Fail; new Agent_asyncsendlogData().EditLog(log); } } catch (Exception e) { log.Id = inslog; log.Remark = e.Message.Replace("'", "''");//单引号替换为'',双引号不用处理 new Agent_asyncsendlogData().EditLog(log); } }
// 订单退票 public string Getorderrefund(Lvmama_reqlog mlog, Agent_company agentinfo) { var response = new backRefund(); response.uid = agentinfo.Lvmama_uid; try { int organization = agentinfo.Id; #region 把分销商发送过来的请求记入数据库日志表2 agent_requestlog Agent_requestlog reqlog = new Agent_requestlog() { Id = 0, Organization = organization, Encode_requeststr = "", Decode_requeststr = _requestParam, Request_time = DateTime.Now, Encode_returnstr = "", Decode_returnstr = "", Return_time = DateTime.Parse("1970-01-01 00:00:00"), Errmsg = "", Request_type = "discard_code", Req_seq = "", Ordernum = "", Is_dealsuc = 0, Is_second_receivereq = 0, Request_ip = CommonFunc.GetRealIP() }; int reqlogid = new Agent_requestlogData().Editagent_reqlog(reqlog); reqlog.Id = reqlogid; #endregion var data = JsonConvert.DeserializeObject <discard_codemodel>(_requestParam); if (data.uid == "") { response.uid = agentinfo.Lvmama_uid; response.status = "2"; response.msg = "数据解析失败"; return(EditLvmamalog_Order(response, mlog, reqlog)); } else { string uid = data.uid; string password = data.password; string sign = data.sign; string timestamp = data.timestamp; string extId = data.extId; Lvmama_reqlog LvmamaOrderCrateSucLog = new lvmama_reqlogData().GetLvmama_OrderpayreqlogBySelforderid(int.Parse(extId), "0"); if (LvmamaOrderCrateSucLog == null) { response.status = "4"; response.msg = "未查找到相对应订单"; return(EditLvmamalog_Order(response, mlog, null)); } string lvmamaorderid = LvmamaOrderCrateSucLog.mtorderid; data.lvmmamaorderid = lvmamaorderid; B2bOrderData dataorder = new B2bOrderData(); B2b_order modelb2border = dataorder.GetOrderById(int.Parse(extId)); if (modelb2border == null) { response.status = "4"; response.msg = "未查找到相对应订单"; return(EditLvmamalog_Order(response, mlog, null)); } int num = modelb2border.U_num; data.num = num; //日志表2 判断是否是二次发送相同的请求 int is_secondreq = new Agent_requestlogData().Is_secondreq(organization.ToString(), lvmamaorderid, reqlog.Request_type); #region 把发送的请求类型,请求流水号,订单号,是否是二次发送相同的请求录入数据库 日志表2 reqlog.Req_seq = lvmamaorderid; reqlog.Ordernum = extId; reqlog.Is_second_receivereq = is_secondreq; new Agent_requestlogData().Editagent_reqlog(reqlog); #endregion #region 编辑日志表1 mlog.mtorderid = lvmamaorderid; mlog.ordernum = extId; mlog.issecond_req = is_secondreq; new lvmama_reqlogData().EditReqlog(mlog); #endregion //因为是作废,重复的也可以操作,但返回不一定正确 if (is_secondreq == 1) { return(Cancel_order(reqlog, data, organization.ToString(), mlog)); } else { return(Cancel_order(reqlog, data, organization.ToString(), mlog)); } } } catch (Exception ex) { response.status = "2"; response.msg = "异常错误"; return(EditLvmamalog_Order(response, mlog, null)); } }
/// 订单支付 public string Getorderpay(Meituan_reqlog mlog) { lock (lockobj) { var response = new OrderPayResponse(); response.partnerId = int.Parse(agentinfo.mt_partnerId); try { int organization = agentinfo.Id; #region 把分销商发送过来的请求记入数据库日志表2 agent_requestlog Agent_requestlog reqlog = new Agent_requestlog() { Id = 0, Organization = organization, Encode_requeststr = "", Decode_requeststr = _requestParam, Request_time = DateTime.Now, Encode_returnstr = "", Decode_returnstr = "", Return_time = DateTime.Parse("1970-01-01 00:00:00"), Errmsg = "", Request_type = "add_order", Req_seq = "", Ordernum = "", Is_dealsuc = 0, Is_second_receivereq = 0, Request_ip = CommonFunc.GetRealIP() }; int reqlogid = new Agent_requestlogData().Editagent_reqlog(reqlog); reqlog.Id = reqlogid; #endregion var data = JsonConvert.DeserializeObject <OrderPayRequest>(_requestParam); if (data.body == null) { response.code = 599; response.describe = "Body数据解析失败"; return(EditMTlog_Err(response, mlog, reqlog)); } else { OrderPayRequestBody body = data.body; string mtorderid = body.orderId.ToString(); //如果合作商订单Id不存在,则查询美团订单创建日志 if (body.partnerOrderId == "") { Meituan_reqlog mtOrderCrateSucLog = new Meituan_reqlogData().GetMtOrderCrateLogByMtorder(body.orderId.ToString(), "200"); body.partnerOrderId = mtOrderCrateSucLog.ordernum; } string order_num = body.partnerOrderId; mlog.mtorderid = body.orderId.ToString(); //日志表2 判断是否是二次发送相同的请求 int is_secondreq = new Agent_requestlogData().Is_secondreq(organization.ToString(), mtorderid, reqlog.Request_type); #region 把发送的请求类型,请求流水号,订单号,是否是二次发送相同的请求录入数据库 日志表2 reqlog.Req_seq = mtorderid; reqlog.Ordernum = order_num; reqlog.Is_second_receivereq = is_secondreq; new Agent_requestlogData().Editagent_reqlog(reqlog); #endregion #region 编辑日志表1 mlog.mtorderid = mtorderid; mlog.ordernum = order_num; mlog.issecond_req = is_secondreq; new Meituan_reqlogData().EditReqlog(mlog); #endregion if (is_secondreq == 1) { //获取处理成功的请求信息:如果没有则重新提单 Agent_requestlog suclog = new Agent_requestlogData().GetAgent_addorderlogByReq_seq(organization.ToString(), mtorderid, 1); if (suclog != null) { //return suclog.Decode_returnstr; Meituan_reqlog mtlogg = new Meituan_reqlogData().GetMeituan_Orderpayreqlog(mtorderid, "200"); if (mtlogg != null) { response = (OrderPayResponse)JsonConvert.DeserializeObject(mtlogg.respstr, typeof(OrderPayResponse)); reqlog.Is_dealsuc = 1; //reqlog.Ordernum = suclog.Ordernum; mlog.ordernum = suclog.Ordernum; return(EditMTlog_Err(response, mlog, reqlog)); } else { response.code = 502; response.describe = "查询美团支付成功日志失败"; return(EditMTlog_Err(response, mlog, reqlog)); } } else { return(pay_order(reqlog, body, organization.ToString(), mlog)); } } else { return(pay_order(reqlog, body, organization.ToString(), mlog)); } } } catch (Exception ex) { response.code = 599; response.describe = "异常错误"; return(EditMTlog_Err(response, mlog, null)); } } }