internal Lvmama_reqlog GetLvmamaOrderCreateLogByLvmamaorder(string mtorderid, string code)
        {
            string sql = @"SELECT top 1  *
  FROM  Lvmama_reqlog where   req_type=@req_type and mtorderid=@mtorderid and code=@code order by id desc";
            var    cmd = sqlHelper.PrepareTextSqlCommand(sql);

            cmd.AddParam("@req_type", "apply_code");
            cmd.AddParam("@mtorderid", mtorderid);
            cmd.AddParam("@code", code);
            using (var reader = cmd.ExecuteReader())
            {
                Lvmama_reqlog m = null;
                if (reader.Read())
                {
                    m = new Lvmama_reqlog
                    {
                        id           = reader.GetValue <int>("id"),
                        reqstr       = reader.GetValue <string>("reqstr"),
                        subtime      = reader.GetValue <string>("subtime"),
                        respstr      = reader.GetValue <string>("respstr"),
                        resptime     = reader.GetValue <string>("resptime"),
                        code         = reader.GetValue <string>("code"),
                        describe     = reader.GetValue <string>("describe"),
                        req_type     = reader.GetValue <string>("req_type"),
                        sendip       = reader.GetValue <string>("sendip"),
                        mtorderid    = reader.GetValue <string>("mtorderid"),
                        ordernum     = reader.GetValue <string>("ordernum"),
                        issecond_req = reader.GetValue <int>("issecond_req"),
                    };
                }
                return(m);
            }
        }
Beispiel #2
0
        //编辑日志
        public string EditLvmamalog_Order(backRefund response, Lvmama_reqlog mlog, Agent_requestlog reqlog)
        {
            string json = JsonConvert.SerializeObject(response);

            #region 把处理结果录入数据库
            mlog.respstr  = json;
            mlog.resptime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            mlog.code     = response.status;
            mlog.describe = response.msg;
            new lvmama_reqlogData().EditReqlog(mlog);
            #endregion

            #region  把处理结果录入分销接口通用日志表
            if (reqlog != null)
            {
                reqlog.Errmsg           = json;
                reqlog.Decode_returnstr = json;
                reqlog.Encode_returnstr = "";
                reqlog.Return_time      = DateTime.Now;

                new Agent_requestlogData().Editagent_reqlog(reqlog);
            }
            #endregion

            return(json);
        }
Beispiel #3
0
 public int EditReqlog(Lvmama_reqlog m)
 {
     using (var helper = new SqlHelper())
     {
         int id = new Internallvmama_reqlogData(helper).EditReqlog(m);
         return(id);
     }
 }
Beispiel #4
0
        //编辑日志
        public string EditLvmamalog_Order(backRefund response, Lvmama_reqlog mlog, Agent_requestlog reqlog)
        {
            string json = JsonConvert.SerializeObject(response);

            #region 把处理结果录入数据库
            mlog.respstr  = json;
            mlog.resptime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            mlog.code     = response.status;
            mlog.describe = response.msg;
            new lvmama_reqlogData().EditReqlog(mlog);
            #endregion

            #region  把处理结果录入分销接口通用日志表
            if (reqlog != null)
            {
                reqlog.Errmsg           = json;
                reqlog.Decode_returnstr = json;
                reqlog.Encode_returnstr = "";
                reqlog.Return_time      = DateTime.Now;

                new Agent_requestlogData().Editagent_reqlog(reqlog);
            }
            #endregion


            if (agentinfo != null)
            {
                var lvmamadata = new LVMAMA_Data(agentinfo.Lvmama_uid, agentinfo.Lvmama_password, agentinfo.Lvmama_Apikey);


                //初始的时候没有sign值,等组合后下面生成加密文件
                var discardcodecalljson = lvmamadata.discardcodecall_json(reqlog.Req_seq, agentinfo.Lvmama_uid, agentinfo.Lvmama_password, response.status, "", response.msg);


                #region 签名验证
                string Md5Sign   = lvmamadata.discardcall_codemd5(discardcodecalljson);
                string afterSign = lvmamadata.lumamasign(Md5Sign, agentinfo.Lvmama_Apikey);
                #endregion

                discardcodecalljson.sign = afterSign;

                //异步通知
                AsyncsendsmsEventHandler mydelegate = new AsyncsendsmsEventHandler(AsyncSendSms);
                mydelegate.BeginInvoke(discardcodecalljson, agentinfo, new AsyncCallback(CompletedSendSms), null);
            }


            return(json);
        }
Beispiel #5
0
      //编辑日志
      public string EditLvmamalog_Order(apply_codeRefund response, Lvmama_reqlog mlog)
      {
          response.codeURL = "";

          string json = JsonConvert.SerializeObject(response);

          #region 把处理结果录入数据库
          mlog.respstr             = json;
          mlog.resptime            = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
          mlog.code                = response.status;
          mlog.ordernum            = response.orderId;
          mlog.describe            = response.msg;
          mlog.mtorderid           = response.serialNo;
          mlog.stockagentcompanyid = mlog.stockagentcompanyid;
          new lvmama_reqlogData().EditReqlog(mlog);
          #endregion


          //驴妈妈,对供应商单独审核订单,才需要异步提交
          //Agent_company agentinfo = new AgentCompanyData().GetAgentCompanyByLvmamaPartnerId(response.uid);
          //if (agentinfo != null)
          //{
          //    var lvmamadata = new LVMAMA_Data(agentinfo.Lvmama_uid, agentinfo.Lvmama_password, agentinfo.Lvmama_Apikey);



          //    //初始的时候没有sign值,等组合后下面生成加密文件
          //    var asynnoticecalljson = lvmamadata.asyConsumeNotify_json(response.serialNo, agentinfo.Lvmama_uid, agentinfo.Lvmama_password, response.status, "", response.authCode, "", mlog.ordernum);


          //    #region 签名验证
          //    string Md5Sign = lvmamadata.asynnoticecallbackmd5(asynnoticecalljson);
          //    string afterSign = lvmamadata.lumamasign(Md5Sign, agentinfo.Lvmama_Apikey);
          //    #endregion

          //    asynnoticecalljson.sign = afterSign;

          //    //异步通知
          //    AsyncsendsmsEventHandler mydelegate = new AsyncsendsmsEventHandler(AsyncSendSms);
          //    mydelegate.BeginInvoke(asynnoticecalljson, agentinfo, new AsyncCallback(CompletedSendSms), null);
          //}
          return(json);
      }
Beispiel #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            #region 记入日志表LVmama_reqlog
            string        reqip = CommonFunc.GetRealIP();
            Lvmama_reqlog mlog  = new Lvmama_reqlog
            {
                id                  = 0,
                reqstr              = _requestParam,
                subtime             = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                respstr             = "",
                resptime            = "",
                code                = "",
                describe            = "",
                req_type            = "sms_resend",
                sendip              = reqip,
                stockagentcompanyid = 0
            };
            int logid = new lvmama_reqlogData().EditReqlog(mlog);
            mlog.id = logid;
            #endregion

            var data = JsonConvert.DeserializeObject <sms_resendmodel>(_requestParam);
            if (data == null)
            {
                return;
            }
            try
            {
                uid      = data.uid;
                password = data.password;


                string timestamp = data.timestamp;
                string sign      = data.sign;
                string extId     = data.extId;


                agentinfo = new AgentCompanyData().GetAgentCompanyByLvmamaPartnerId(uid);

                LVMAMA_Data lvmamadata = new LVMAMA_Data(agentinfo.Lvmama_uid, agentinfo.Lvmama_password, agentinfo.Lvmama_Apikey);


                #region 验证是否已经配置驴妈妈合作商信息
                if (agentinfo == null)
                {
                    var response = new apply_codeRefund();
                    response.uid     = uid;
                    response.orderId = "0";
                    response.status  = "2";
                    response.msg     = "分销尚未配置驴妈妈商信息(uid:" + uid + ")";

                    string json = JsonConvert.SerializeObject(response);

                    //把处理结果录入日志
                    mlog.respstr  = "";
                    mlog.resptime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    mlog.code     = response.status;
                    mlog.describe = response.msg;
                    new lvmama_reqlogData().EditReqlog(mlog);
                    LogHelper.RecordSelfLog("Error", "lvmama", response.msg);
                    Response.Write(json);
                    return;
                }
                #endregion


                mlog.stockagentcompanyid = agentinfo.Id;
                mlog.ordernum            = extId;


                #region 签名验证
                string Md5Sign   = lvmamadata.sms_resend_codemd5(data);
                string afterSign = lvmamadata.lumamasign(Md5Sign, agentinfo.Lvmama_Apikey);

                //判断签名是否正确
                if (afterSign != sign)
                {
                    var response = new apply_codeRefund();
                    response.uid     = uid;
                    response.orderId = extId;
                    response.status  = "2";
                    response.msg     = "签名认证失败";

                    string json = JsonConvert.SerializeObject(response);

                    //把处理结果录入日志
                    mlog.respstr  = "";
                    mlog.resptime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    mlog.code     = response.status;
                    mlog.describe = response.msg;
                    new lvmama_reqlogData().EditReqlog(mlog);

                    LogHelper.RecordSelfLog("Error", "lvmama", "签名错误 lvmamamSign-" + sign + "  meSign-" + afterSign);

                    Response.Write(json);
                    return;
                }
                #endregion

                string actionResult = Smsresend(mlog, agentinfo);

                Response.Write(actionResult);
            }
            catch (Exception ex)
            {
                // Response.Write(ex);
            }
        }
Beispiel #7
0
        //     重发,
        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));
            }
        }
Beispiel #8
0
        public backRefund discardcodecallbacksend(discardcodecallbackmodel requestData, int agentcompanyid)
        {
            string url = "http://114.80.83.165/vst_passport/lvmamacallback/discardcodecallback.do";

            #region  记入日志表
            string        reqip = CommonFunc.GetRealIP();
            Lvmama_reqlog mlog  = new Lvmama_reqlog
            {
                id                  = 0,
                reqstr              = JsonConvert.SerializeObject(requestData),
                subtime             = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                respstr             = "",
                resptime            = "",
                code                = "",
                describe            = "",
                req_type            = "discardcodecallback",
                sendip              = reqip,
                stockagentcompanyid = agentcompanyid
            };
            int logid = new lvmama_reqlogData().EditReqlog(mlog);
            mlog.id = logid;
            #endregion


            backRefund result = new backRefund
            {
                IsSuccess = false,
            };
            try
            {
                var responseStr = DoRequest(url, JsonConvert.SerializeObject(requestData));
                if (string.IsNullOrEmpty(responseStr))
                {
                    result.msg = "返回数据为空";
                }
                else
                {
                    backRefund responseBody = (backRefund)JsonConvert.DeserializeObject(responseStr, typeof(backRefund));
                    if (responseBody.status == "0")
                    {
                        result.IsSuccess = true;
                        result.msg       = JsonConvert.SerializeObject(responseBody);
                    }
                    else
                    {
                        result.IsSuccess = false;
                        result.msg       = responseBody.msg;
                    }
                    //记录在日志表
                    mlog.code     = responseBody.status;
                    mlog.describe = responseBody.msg;
                }
            }
            catch (Exception ex)
            {
                result.msg = "异常" + ex.Message;
            }

            #region  记录在日志表
            mlog.req_type = "discardcodecallback";
            mlog.respstr  = result.msg;
            mlog.resptime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            new lvmama_reqlogData().EditReqlog(mlog);
            #endregion

            return(result);
        }
Beispiel #9
0
      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));
              }
          }
      }
Beispiel #10
0
        private string Cancel_order(Agent_requestlog reqlog, discard_codemodel body, string organization, Lvmama_reqlog mlog)
        {
            var response = new backRefund();
            // response.partnerId = int.Parse(agentinfo.mt_partnerId);

            string mtorderid = body.lvmmamaorderid;
            string order_num = body.extId;
            int    num       = body.num;

            mlog.mtorderid = mtorderid;
            mlog.ordernum  = order_num;

            #region 条件判断
            if (order_num.ConvertTo <int>(0) == 0)
            {
                response.status = "4";
                response.msg    = "订单号格式有误";
                return(EditLvmamalog_Order(response, mlog, reqlog));
            }

            if (num == 0)
            {
                response.status = "4";
                response.msg    = "退票张数格式有误";
                return(EditLvmamalog_Order(response, mlog, reqlog));
            }
            //判断订单是否是当前分销的订单
            //bool isselforder = new Agent_requestlogData().lvmamaGetisselforder(organization, order_num);
            //if (isselforder == false)
            //{
            //    response.status = "4";
            //    response.msg = "订单信息错误";
            //    return EditLvmamalog_Order(response, mlog, reqlog);

            //}
            #endregion
            B2b_order morder = new B2bOrderData().GetOrderById(order_num.ConvertTo <int>(0));
            if (morder != null)
            {
                if (morder.Pro_id > 0)
                {
                    //判断订单出票单位是否正确
                    if (morder.Agentid != int.Parse(organization))
                    {
                        response.status = "4";
                        response.msg    = "订单信息错误";
                        return(EditLvmamalog_Order(response, mlog, reqlog));
                    }


                    B2b_com_pro pro = new B2bComProData().GetProById(morder.Pro_id.ToString());
                    if (pro == null)
                    {
                        response.status = "4";
                        response.msg    = "此订单对应产品错误";
                        return(EditLvmamalog_Order(response, mlog, reqlog));
                    }
                    else
                    {
                        if (pro.Source_type == 2) //产品来源:1.系统自动生成2.倒码产品3.外部接口产品
                        {
                            response.status = "4";
                            response.msg    = "倒码产品不支持接口退票";
                            return(EditLvmamalog_Order(response, mlog, reqlog));
                        }
                        else
                        {
                            //得到订单的验证方式:0(一码多验);1(一码一验),
                            #region 一码多验 退票 按订单号退票
                            if (morder.yanzheng_method == 0)
                            {
                                string      data    = OrderJsonData.QuitOrder(pro.Com_id, order_num.ConvertTo <int>(0), pro.Id, num, "分销外部接口退票");
                                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.status   = "0";
                                    response.msg      = "success";
                                    reqlog.Ordernum   = order_num;
                                    reqlog.Is_dealsuc = 1;
                                    return(EditLvmamalog_Order(response, mlog, reqlog));
                                }
                                else//取消订单失败
                                {
                                    response.status = "4";
                                    response.msg    = msg;
                                    return(EditLvmamalog_Order(response, mlog, reqlog));
                                }
                            }
                            #endregion
                            #region 一码一验 退票 按电子码退票
                            else
                            {
                                response.status = "2";
                                response.msg    = "订单验码方式不支持";
                                return(EditLvmamalog_Order(response, mlog, reqlog));
                            }
                            #endregion
                        }
                    }
                }
                else
                {
                    response.status = "4";
                    response.msg    = "订单中产品不存在";
                    return(EditLvmamalog_Order(response, mlog, reqlog));
                }
            }
            else
            {
                response.status = "4";
                response.msg    = "订单不存在";
                return(EditLvmamalog_Order(response, mlog, reqlog));
            }
        }
Beispiel #11
0
        //     订单退票
        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));
            }
        }
        internal int EditReqlog(Lvmama_reqlog m)
        {
            if (m.id == 0)
            {
                string sql = @"INSERT INTO  [Lvmama_reqlog]
                           ([reqstr]
                           ,[subtime]
                           ,[respstr]
                           ,[resptime]
                           ,[code]
                           ,[describe]
                           ,[req_type]
                           ,[sendip]
                           ,mtorderid
                           ,ordernum
                           ,issecond_req,stockagentcompanyid)
                     VALUES
                           (@reqstr 
                           ,@subtime 
                           ,@respstr 
                           ,@resptime 
                           ,@code
                           ,@describe 
                           ,@req_type 
                           ,@sendip
                           ,@mtorderid
                           ,@ordernum
                           ,@issecond_req,@stockagentcompanyid);select @@identity;";
                var    cmd = sqlHelper.PrepareTextSqlCommand(sql);
                cmd.AddParam("@reqstr", m.reqstr);
                cmd.AddParam("@subtime", m.subtime);
                cmd.AddParam("@respstr", m.respstr);
                cmd.AddParam("@resptime", m.resptime);
                cmd.AddParam("@code", m.code);
                cmd.AddParam("@describe", m.describe);
                cmd.AddParam("@req_type", m.req_type);
                cmd.AddParam("@sendip", m.sendip);

                if (m.mtorderid == null)
                {
                    m.mtorderid = "";
                }
                cmd.AddParam("@mtorderid", m.mtorderid);
                if (m.ordernum == null)
                {
                    m.ordernum = "";
                }
                cmd.AddParam("@ordernum", m.ordernum);
                if (m.issecond_req == null)
                {
                    m.issecond_req = 0;
                }
                cmd.AddParam("@issecond_req", m.issecond_req);
                if (m.stockagentcompanyid == null)
                {
                    m.stockagentcompanyid = 0;
                }
                cmd.AddParam("@stockagentcompanyid", m.stockagentcompanyid);

                object o = cmd.ExecuteScalar();
                return(o == null ? 0 : int.Parse(o.ToString()));
            }
            else
            {
                string sql = @"UPDATE  [Lvmama_reqlog]
                               SET [reqstr] = @reqstr 
                                  ,[subtime] = @subtime 
                                  ,[respstr] = @respstr 
                                  ,[resptime] = @resptime 
                                  ,[code] = @code 
                                  ,[describe] = @describe 
                                  ,[req_type] = @req_type 
                                  ,[sendip] = @sendip 
                                  ,mtorderid=@mtorderid
                                  ,ordernum=@ordernum
                                  ,issecond_req=@issecond_req
                                  ,stockagentcompanyid=@stockagentcompanyid
                             WHERE id=@id";
                var    cmd = sqlHelper.PrepareTextSqlCommand(sql);
                cmd.AddParam("@id", m.id);
                cmd.AddParam("@reqstr", m.reqstr);
                cmd.AddParam("@subtime", m.subtime);

                if (m.respstr == null)
                {
                    m.respstr = "";
                }
                cmd.AddParam("@respstr", m.respstr);
                cmd.AddParam("@resptime", m.resptime);
                cmd.AddParam("@code", m.code);
                cmd.AddParam("@describe", m.describe);
                cmd.AddParam("@req_type", m.req_type);
                cmd.AddParam("@sendip", m.sendip);
                if (m.mtorderid == null)
                {
                    m.mtorderid = "";
                }
                cmd.AddParam("@mtorderid", m.mtorderid);
                if (m.ordernum == null)
                {
                    m.ordernum = "";
                }
                cmd.AddParam("@ordernum", m.ordernum);
                if (m.issecond_req == null)
                {
                    m.issecond_req = 0;
                }
                cmd.AddParam("@issecond_req", m.issecond_req);
                if (m.stockagentcompanyid == null)
                {
                    m.stockagentcompanyid = 0;
                }
                cmd.AddParam("@stockagentcompanyid", m.stockagentcompanyid);

                cmd.ExecuteNonQuery();
                return(m.id);
            }
        }