Beispiel #1
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 #2
0
        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);
            }
        }
Beispiel #3
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 #4
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));
            }
        }