コード例 #1
0
        /// <summary>
        /// 上载报文(到QP)
        /// </summary>
        /// <param name="keyValue">激活码</param>
        /// <param name="machineCode">机器代码</param>
        /// <param name="cusCiqNo">关检关联号(可选),如果没有填空字符</param>
        /// <param name="msgXml">消息</param>
        /// <returns></returns>
        public MesReceipt SendMessage(string keyValue, string machineCode, string cusCiqNo, string msgXml)
        {
            var       receipt   = new MesReceipt();
            LogHelper logHelper = LogHelper.GetInstance();

            try
            {
                CusCiqNoInfo cusCiqNoInfo = new CusCiqNoInfo {
                    CusCiqNo = cusCiqNo
                };

                var cusDataMsg = new CusDataMsg {
                    KeyValue = keyValue, MachineCode = machineCode, MessageXml = msgXml, CusCiqNo = cusCiqNoInfo
                };
                IMessageDataHelper dataHelper = DataHelperFactory.GetMessageDataHelper();
                //检查激活码
                if (!Utility.CheckKey(dataHelper.GetKeyInfo(keyValue, machineCode)))
                {
                    receipt.Status  = "003";
                    receipt.Message = GetErrInfo(Context.ErrKeyValueInvalid, Context.ErrKeyValueInvalidId);
                    return(receipt);
                }
                cusDataMsg    = Utility.FormatCusDataMsg(cusDataMsg, dataHelper.GetMaxTcsCurrentId(), ConfigInfo.TscIdHead, ConfigInfo.DocumentNo);
                receipt.RDate = DateTime.Now.ToString("yyyyMMddHHmmss");
                DeclHelper      declHelper = new DeclHelper();
                DeclEnvelopHead msgHeader  = declHelper.GetEnvelopHeader(msgXml);
                #region 生成TCS报文
                XDocEntity tmpDoc    = ConfigInfo.GetTemplateDocEntity();
                TcsHelper  tcsHelper = new TcsHelper();
                //保存报文
                XDocument tcsDoc = tcsHelper.GenerateTcsXDoc(tmpDoc, cusDataMsg);
                tcsDoc.Save(GetFileName(ConfigInfo.Path));
                #endregion
                #region 报文落地数据库
                cusDataMsg.TcsMessageXml = tcsDoc.ToString();
                cusDataMsg.DeclTime      = DateTime.Now;
                cusDataMsg.MsgGuid       = msgHeader.MsgGuid;
                cusDataMsg.Sendtime      = msgHeader.SendTime;
                dataHelper.SaveMessageInfo(cusDataMsg);
                #endregion

                receipt.Status   = "000";
                receipt.Message  = string.Empty;
                receipt.MessagID = cusDataMsg.TaskId;

                //记录操作日志
                logHelper.LogOperation(string.Format("SendMessage 上载报文(到QP),KeyValue:{0},Machinecode:{1},CusCiqNo:{2}",
                                                     keyValue, machineCode, cusCiqNo), Context.SendMessageEventId, "SendMessage", keyValue);
                return(receipt);
            }
            catch (Exception ex)
            {
                receipt.Status  = "001";
                receipt.Message = GetErrInfo(Context.ErrSendMessage, Context.SendMessageEventId);
                logHelper.LogErrInfo(ex.Message, Context.SendMessageEventId, "SendMessage", keyValue, msgXml);
                return(receipt);
            }
        }
コード例 #2
0
        public void SendMessageTest()
        {
            MessageServiceHelper helper = new MessageServiceHelper();
            string     cusCiqNo         = helper.GetCusCiqNo("0", "5100");
            XDocument  declDoc          = XDocument.Parse(Constants.ClientMessage);
            MesReceipt res = helper.SendMessage(Constants.ClientKey, Constants.ClientMachineCode, cusCiqNo, declDoc.ToString());

            Assert.AreEqual(string.Empty, res.Message);
            Assert.AreEqual <Boolean>(false, string.IsNullOrEmpty(res.MessagID));
        }
コード例 #3
0
        public void WCFTest()
        {
            //ServiceReference1.MessageServiceWCFClient client = new ServiceReference1.MessageServiceWCFClient();
            //string cusCiqNo = client.GetCusCiqNo("0", "5100");

            WSHttpBinding httpBinding = new WSHttpBinding();

            httpBinding.Security.Mode = SecurityMode.None;
            //string url = "http://*****:*****@"F:\Temp\DeclMsg\DECL_FILE.xml");


            //上载报文
            //MesReceipt res = wsHttpChannel.SendMessage("130409667935", "00-21-70-67-E8-27",
            //    cusCiqNo, declDoc.ToString());
            MesReceipt res = wsHttpChannel.SendMessage("130815300366", "00-21-70-67-E8-27",
                                                       cusCiqNo, declDoc.ToString());

            Assert.AreEqual(string.Empty, res.Message);
            Assert.AreEqual <Boolean>(false, string.IsNullOrEmpty(res.MessagID));
            //上传报文(全)
            SaveModel model = wsHttpChannel.UploadAllData("130409667935", "00-21-70-67-E8-27", "1", "5100",
                                                          cusCiqNo, 0, declDoc.ToString(), declDoc.ToString());
            SaveModel model2 = wsHttpChannel.UploadAllData("130409667935", "00-21-70-67-E8-27", "1", "5100",
                                                           cusCiqNo, 0, declDoc.ToString(), declDoc.ToString());

            Assert.AreEqual <string>(model.Password, model2.Password);

            Assert.AreEqual <Boolean>(true, model.IsSuccess);
            //上传报关报文
            model = wsHttpChannel.UploadCustomsData("130409667935", "00-21-70-67-E8-27", "1", "5100",
                                                    cusCiqNo, 0, declDoc.ToString());
            Assert.AreEqual <Boolean>(true, model.IsSuccess);
            //下载报关数据
            string cusMsg = wsHttpChannel.DownloadCustomsData("130409667935", "00-21-70-67-E8-27", "0130422510000024", "950496");

            Assert.IsNotNull(cusMsg);
            XDocument cusDoc = XDocument.Parse(cusMsg);

            Assert.AreEqual <string>("662025362", cusDoc.Root.Element("EnvelopBody").Element("DECL_HEAD").Element("PRE_ENTRY_ID").Value);
            //下载报检数据
            string ciqMsg = wsHttpChannel.DownloadCiqData("130409667935", "00-21-70-67-E8-27", "0130422510000024", "950496");

            Assert.IsNotNull(ciqMsg);
            XDocument ciqDoc = XDocument.Parse(ciqMsg);

            Assert.AreEqual <string>("662025362", ciqDoc.Root.Element("EnvelopBody").Element("DECL_HEAD").Element("PRE_ENTRY_ID").Value);
            //获得更新时间
            Assert.AreEqual(DateTime.Parse("2013-04-22 10:33:00"), wsHttpChannel.GetSaveTime("0130422510000024"));
            //登陆
            UserInfo user = wsHttpChannel.Login("jctest", "2157FC3FAD461F6A45834F07F8B0BA03");

            Assert.AreEqual("3c94fe4f-677d-4ffc-9922-9479bb784283", user.Guid);
            //修改密码
            Assert.AreEqual <int>(1, wsHttpChannel.UpdatePassword("jctest", "2157FC3FAD461F6A45834F07F8B0BA03", "2157FC3FAD461F6A45834F07F8B0BA03"));
            //激活
            //Assert.AreEqual<int>(1, wsHttpChannel.ActiveKeyByLoginName("e", "E1671797C52E15F763380B45E841EC32", "130403162281", "BFEBFBFF0001067A"));
            //下载回执
            foreach (var cusRep in wsHttpChannel.ReceiveMsgRep("130409667935", "00-21-70-67-E8-27", "T1907843510020130223f4ff60b96"))
            {
                Assert.AreEqual <Boolean>(false, string.IsNullOrEmpty(cusRep.ReturnInfo));
            }
        }