private string GetDealNoticeSend(Meituan_reqlog mlog) { var response = new MtpApiResponse(); response.partnerId = agentinfo.mt_partnerId.ConvertTo <int>(0); try { var data = JsonConvert.DeserializeObject <MtpOrderRefundedMessageRequest>(_requestParam.Replace("operator", "operator1")); if (data.body == null) { response.code = 300; response.describe = "Body数据解析失败"; } else { MtpOrderRefundedMessageRequestBody body = data.body; /* * 把电子票作废,数量清零 * 1.根据美团订单号得到系统订单号 * 2.根据系统订单号得到电子票 * 3.把电子票作废 */ int sysOrderid = new Meituan_reqlogData().GetSysorderidByMtorderid(body.orderId.ToString()); if (sysOrderid == 0) { //把这次操作计入日志文档中 LogHelper.RecordSelfLog("Error", "美团重要错误记录", "1--美团订单号:" + body.orderId + ",系统订单号:" + body.partnerOrderId + ",退款流水号:" + body.refundSerialNo + ",凭证码:" + String.Join(",", body.voucherList) + ",单张门票退款金额:" + body.refundPrice + ",已退款消息类型:" + body.refundMessageType + ",退款原因:" + body.reason + ",退款时间:" + body.refundTime + ",退款份数:" + body.count); } else { string pno = new SendEticketData().HuoQuEticketPno(sysOrderid); if (pno == "") { //把这次操作计入日志文档中 LogHelper.RecordSelfLog("Error", "美团重要错误记录", "2--美团订单号:" + body.orderId + ",系统订单号:" + body.partnerOrderId + ",退款流水号:" + body.refundSerialNo + ",凭证码:" + String.Join(",", body.voucherList) + ",单张门票退款金额:" + body.refundPrice + ",已退款消息类型:" + body.refundMessageType + ",退款原因:" + body.reason + ",退款时间:" + body.refundTime + ",退款份数:" + body.count); } else { try { string[] pnoarr = pno.Split(','); for (var i = 0; i < pnoarr.Length; i++) { if (pnoarr[i] != "") { //清空电子票数量 int r = new B2bEticketData().ClearPnoNum(pnoarr[i]); } } } catch { } //把这次操作计入日志文档中 LogHelper.RecordSelfLog("Error", "美团重要错误记录", "3--美团订单号:" + body.orderId + ",系统订单号:" + body.partnerOrderId + ",退款流水号:" + body.refundSerialNo + ",凭证码:" + String.Join(",", body.voucherList) + ",单张门票退款金额:" + body.refundPrice + ",已退款消息类型:" + body.refundMessageType + ",退款原因:" + body.reason + ",退款时间:" + body.refundTime + ",退款份数:" + body.count); } } } response.code = 200; response.describe = "successful"; response.partnerId = int.Parse(agentinfo.mt_partnerId); } catch (Exception ex) { response.code = 300; response.describe = "异常错误"; } string json = JsonConvert.SerializeObject(response); #region 把处理结果录入数据库 mlog.respstr = json; mlog.resptime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); mlog.code = response.code.ToString(); mlog.describe = response.describe; new Meituan_reqlogData().EditReqlog(mlog); #endregion return(json); }
// 重发, 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)); } }
public string Getordercreate(Lvmama_reqlog mlog, Agent_company agentinfo) { lock (lockobj) { var response = new apply_codeRefund(); try { var data = JsonConvert.DeserializeObject <apply_codemodel>(_requestParam); if (data.contacts == null) { response.uid = agentinfo.Lvmama_uid; response.status = "2"; response.msg = "数据解析失败"; return(EditLvmamalog_Order(response, mlog)); } else { contacts body = data.contacts; string num = data.num; string timestamp = data.timestamp; string visitTime = data.visitTime; string supplierGoodsId = data.supplierGoodsId; string settlePrice = data.settlePrice; string serialNo = data.serialNo; string idNum = body.idNum; string name = body.name; string mobile = body.mobile; string idType = body.idType; //结算价核对 decimal jiesuanjia = 0; ////todo 根据请求参数查询产品返回结果 B2b_com_pro pro = new B2bComProData().GetProById(supplierGoodsId); #region 产品信息 if (pro != null) { #region 分销授权信息判断 Agent_company agentwarrantinfo = AgentCompanyData.GetAgentWarrant(agentinfo.Id, pro.Com_id); if (agentwarrantinfo != null) { int warrantid = agentwarrantinfo.Warrantid; int Warrant_type = agentwarrantinfo.Warrant_type; //支付类型分销 1出票扣款 2验码扣款 int Warrant_level = agentwarrantinfo.Warrant_level; if (Warrant_level == 1) { jiesuanjia = pro.Agent1_price; } if (Warrant_level == 2) { jiesuanjia = pro.Agent2_price; } if (Warrant_level == 3) { jiesuanjia = pro.Agent3_price; } if (agentwarrantinfo.Warrant_state == 0) { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "商户关闭授权"; return(EditLvmamalog_Order(response, mlog)); } } else { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "商户未授权开通分销"; return(EditLvmamalog_Order(response, mlog)); } #endregion #region 暂时对外接口只支持票务产品 //if (pro.Server_type != 1) //{ // response.status = 300; // response.msg = "暂时对外接口只支持票务产品,其他产品请到分销后台提单"; // return EditLvmamalog_Order(response, mlog); //} #endregion #region 结算价,保证价格是最新价格 decimal advice_price = Convert.ToDecimal(settlePrice); if (jiesuanjia != advice_price) { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "结算价格不同,请联系供应商要去新的价格。驴妈妈价:" + advice_price + " 系统价:" + jiesuanjia; return(EditLvmamalog_Order(response, mlog)); } #endregion #region 产品编码格式有误 if (supplierGoodsId.ConvertTo <int>(0) == 0) { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "产品编码格式有误"; return(EditLvmamalog_Order(response, mlog)); } #endregion #region 购买数量格式有误 if (num.ConvertTo <int>(0) == 0) { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "购买数量格式有误"; return(EditLvmamalog_Order(response, mlog)); } #endregion #region 产品限购则需要判断 限购数量 是否足够 if (pro.Ispanicbuy != 0) { //最多可购买数量 int zuiduo_canbuynum = pro.Limitbuytotalnum; if (int.Parse(num) > zuiduo_canbuynum) { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "产品库存不足"; return(EditLvmamalog_Order(response, mlog)); } } #endregion #region 产品已暂停 if (pro.Pro_state == 0) { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "产品已下线,请联系商家"; return(EditLvmamalog_Order(response, mlog)); } #endregion #region 产品已过期 if (pro.Pro_end < DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"))) { response.uid = agentinfo.Lvmama_uid; response.orderId = "0"; response.status = "3"; response.msg = "产品已过期"; return(EditLvmamalog_Order(response, mlog)); } #endregion #region 产品是否需要预约:需要预约则最晚预约时间是 游玩前一天的18点 //if (pro.isneedbespeak == 1) //{ // if (timestamp != "") // { // DateTime visitdate = DateTime.Parse(timestamp); // DateTime bookdate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); // //必须提前一天预约 // if (bookdate >= visitdate) // { // response.orderId = "0"; //response.status = "300"; //response.msg = "产品未预约产品"; // return EditLvmamalog_Order(response, mlog); // } // } //} #endregion #region 是否有使用限制 //if (pro.Iscanuseonsameday == 0)//1:当天出票可用 ;2:2小时内出票不可用;0:当天出票不可用 //{ // if (body.travelDate != "") // { // DateTime visitdate = DateTime.Parse(body.travelDate);//游玩日期:2012-12-12 格式要求:yyyy-MM-dd // DateTime bookdate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); // if (bookdate >= visitdate) // { // response.code = 300; // response.describe = "预定日期至少在游玩日期之前一天"; // return EditMTlog_Order(response, mlog); // } // } //} #endregion Lvmama_reqlog mtOrderCrateSucLog = new lvmama_reqlogData().GetLvmamaOrderCreateLogByLvmamaorder(serialNo, "0"); #region 查询驴妈妈吗 是否 创建订单日志 if (mtOrderCrateSucLog != null) { string pno = ""; if (pro.Source_type == 3) //如果是接口产品,按接口方式读码selservice,接口产品只读取了wl的码 { 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, "", int.Parse(mtOrderCrateSucLog.ordernum)); if (wlorderinfo != null) { pno = wlorderinfo.vouchers; } } } else { //如果不是借口,则按自己规则读码 SendEticketData sendate = new SendEticketData(); pno = sendate.HuoQuEticketPno(int.Parse(mtOrderCrateSucLog.ordernum)); } response.uid = agentinfo.Lvmama_uid; response.orderId = mtOrderCrateSucLog.ordernum; response.status = "0"; response.authCode = pno; response.serialNo = serialNo; response.msg = "订单创建成功"; mlog.ordernum = mtOrderCrateSucLog.ordernum; return(EditLvmamalog_Order(response, mlog)); } #endregion #region 此驴妈妈订单号 ,没有成功创建过 else { int isInterfaceSub = 1; //是否是电子票接口提交的订单:0.否;1.是 string ordertype = "1"; //1.出票2.充值 int orderid = 0; int speciid = 0; //string real_name = ""; //string mobile = ""; string use_date = timestamp.Substring(0, 4) + "-" + timestamp.Substring(4, 2) + "-" + timestamp.Substring(6, 2); //real_name = name; //mobile = mobile; //创建一笔未支付订单 string rdata = OrderJsonData.AgentOrder(agentinfo.Id, supplierGoodsId, ordertype, num, name, mobile, use_date, "", isInterfaceSub, out orderid); XmlDocument retdoc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + rdata + "}"); XmlElement retroot = retdoc.DocumentElement; string rtype = retroot.SelectSingleNode("type").InnerText; string rmsg = retroot.SelectSingleNode("msg").InnerText; if (rtype == "100") //创建订单成功 { response.uid = agentinfo.Lvmama_uid; response.status = "0"; response.msg = "订单创建成功"; response.orderId = orderid.ToString(); response.serialNo = serialNo; response.authCode = retroot.SelectSingleNode("pno").InnerText; //只有成功的订单才有pno项; mlog.ordernum = orderid.ToString(); return(EditLvmamalog_Order(response, mlog)); } else { response.uid = agentinfo.Lvmama_uid; response.status = "3"; response.msg = "创建订单失败" + rmsg; return(EditLvmamalog_Order(response, mlog)); } } #endregion } else { response.uid = agentinfo.Lvmama_uid; response.uid = "0"; response.status = "4"; response.msg = "产品不存在"; return(EditLvmamalog_Order(response, mlog)); } #endregion } } catch (Exception ex) { response.uid = agentinfo.Lvmama_uid; response.status = "8"; response.msg = "异常错误" + ex; return(EditLvmamalog_Order(response, mlog)); } } }