Beispiel #1
0
        public async Task <string> Add(CheckInModel checkInModel)
        {
            string strRequestJson = checkInModel.ToJson();

            ("原始请求内容:" + strRequestJson).WriteToLog();
            if (string.IsNullOrEmpty(strRequestJson))
            {
                return(ResponseMessageHandle("", "S05", "消息内容为空"));
            }
            //2、消息类型检查
            if (!string.Equals(checkInModel.msg_type, BaseInfo.OrderCreateMsgType))
            {
                return(ResponseMessageHandle("", "S04", "消息类型msg_type错误"));
            }
            //3、签名检查
            try
            {
                if (!SignHelper.CheckDataDigest(checkInModel.logistics_interface, checkInModel.data_digest, BaseInfo.SecretKey))
                {
                    return(ResponseMessageHandle("", "S02", "消息签名不符,请检查签名"));
                }
            }
            catch (Exception ex)
            {
                var mess = new StringBuilder();
                mess.Append("报文消息签名检查失败:\n");
                mess.Append("\n报文内容:" + checkInModel.logistics_interface);
                mess.Append("\n错误信息:" + ex.Message + "\n" + ex.StackTrace);
                mess.ToString().WriteToLog(LogerType.Error);
                return(ResponseMessageHandle("", "S02", "报文消息签名检查失败"));
            }
            //4、报文转换为实体对象
            TaobaoOrderModel model;

            try
            {
                model = checkInModel.logistics_interface.ToObjectIgnoreNull <TaobaoOrderModel>();
            }
            catch (Exception ex)
            {
                var mess = new StringBuilder();
                mess.Append("报文内容格式不符合规范,Json格式转换失败:\n");
                mess.Append("\n报文内容:" + checkInModel.logistics_interface);
                mess.Append("\n错误信息:" + ex.Message + "\n" + ex.StackTrace);
                mess.ToString().WriteToLog(LogerType.Error);
                return(ResponseMessageHandle("", "S01", "报文内容格式不符合规范,Json格式转换失败"));
            }

            #region 5、写入Mysql数据库
            var ret = await t_MySql_OrderService.AddTaoBao(model);

            return(!ret?
                   ResponseMessageHandle(model.txLogisticID, "S07", "订单写入数据库失败", LogerType.Fatal) :
                       ResponseMessageHandle(model.txLogisticID, "", "", LogerType.Info, true));

            #endregion
        }
Beispiel #2
0
        public async Task <string> modifyCancelAsync(CheckInModel checkInModel)
        {
            string strRequestJson = checkInModel.ToJson();

            ("原始请求内容:" + strRequestJson).WriteToLog();
            if (string.IsNullOrEmpty(strRequestJson))
            {
                return(ResponseMessageHandle("", "S05", "消息内容为空"));
            }
            //2、消息类型检查
            if (!string.Equals(checkInModel.msg_type, BaseInfo.OrderUpdateMsgType))
            {
                return(ResponseMessageHandle("", "S04", "消息类型msg_type错误"));
            }
            ;
            //3、签名检查
            try
            {
                if (!SignHelper.CheckDataDigest(checkInModel.logistics_interface, checkInModel.data_digest, BaseInfo.SecretKey))
                {
                    return(ResponseMessageHandle("", "S02", "消息签名不符,请检查签名"));
                }
            }
            catch (Exception ex)
            {
                var mess = new StringBuilder();
                mess.Append("报文消息签名检查失败:\n");
                mess.Append("\n报文内容:" + checkInModel.logistics_interface);
                mess.Append("\n错误信息:" + ex.Message + "\n" + ex.StackTrace);
                mess.ToString().WriteToLog(LogerType.Error);
                return(ResponseMessageHandle("", "S02", "报文消息签名检查失败"));
            }
            //4、报文转换为实体对象
            UpdateTaobaoOrderModel model;

            try
            {
                model = checkInModel.logistics_interface.ToObjectIgnoreNull <UpdateTaobaoOrderModel>();
            }
            catch (Exception ex)
            {
                var mess = new StringBuilder();
                mess.Append("报文内容格式不符合规范,Json格式转换失败:\n");
                mess.Append("\n报文内容:" + checkInModel.logistics_interface);
                mess.Append("\n错误信息:" + ex.Message + "\n" + ex.StackTrace);
                mess.ToString().WriteToLog(LogerType.Error);
                return(ResponseMessageHandle("", "S01", "报文内容格式不符合规范,Json格式转换失败"));
            }
            //5、检查物流公司编号是否与预置的相同
            if (model.logisticProviderID != BaseInfo.CpCode)
            {
                ("报文内容" + strRequestJson + " 物流公司编号与预先设定的不同:" + model.logisticProviderID).WriteToLog();
                return(ResponseMessageHandle(model.logisticProviderID, "S03", "物流公司编号与预先设定的不同,请检查"));
            }

            //5、更新信息写入数据库(包含1、取消订单;2、更新面单号)
            var ret = await t_ORDERService.EditOrder(model, BaseInfo.CpCode);

            var jsonRet = ret.ToJson();

            jsonRet.WriteToLog();
            return(jsonRet);
        }