/// <summary> /// 正式环境接收确认 /// </summary> public static bool Confirm(ExchangeTransport exchangeTransport, string eventId) { try { string strResult = exchangeTransport.ReceiveConfirm(eventId); XmlDocument xml = new XmlDocument(); xml.LoadXml(strResult); XmlNodeList nodes = xml.GetElementsByTagName("ns3:confirmResult"); if (nodes.Count > 0) { string Result = nodes[0].InnerText; if (Result == "false") { throw new Exception(strResult); } } else { throw new Exception(strResult); } } catch (UCommonFaultType ex) { throw new Exception(string.Format("接收确认失败[失败代码:{0} 失败内容:{1}]", ex.getCodeField().Trim(), ex.getErrorMessageField().Trim())); } catch (Exception ex) { throw new Exception("调用接收确认异常:" + ex.GetBaseException()); } return(true); }
/// <summary> /// 正式环境接收数据 /// </summary> public static MyReceiveResponses Receive(string securityURL, string targetUrl, string userCode, string userPwd, ref ExchangeTransport exchangeTransport) { try { exchangeTransport = new ExchangeTransport(userCode, userPwd, "ECE91161D6670E60E040A8C0970C6ACD"); exchangeTransport.AuthServiceUrl = securityURL; exchangeTransport.ServiceUrl = targetUrl; exchangeTransport.Authenticate(); if (!exchangeTransport.IsAuthValid) { throw new Exception("认证失败[" + userCode + "]"); } string strResult = exchangeTransport.Receive("1"); return(new MyReceiveResponses(strResult)); } catch (Exception ex) { throw new Exception("接收出错[" + ex.Message + "]"); } }
/// <summary> /// 正式环境发送数据 /// </summary> public static void Send(string securityURL, string targetUrl, string userCode, string userPwd, string toCode, string dataStr, ActionType actionType) { try { exchangeTransport = new ExchangeTransport(userCode, userPwd, "ECE91161D6670E60E040A8C0970C6ACD"); exchangeTransport.AuthServiceUrl = securityURL; exchangeTransport.ServiceUrl = targetUrl; exchangeTransport.Authenticate(); if (!exchangeTransport.IsAuthValid) { throw new Exception("认证失败[" + userCode + "]"); } string strEventID = exchangeTransport.GetEventId(); //调用函数即可,事件ID会自动生成 string strBaseEncodedData = exchangeTransport.Base64Encode(dataStr); strBaseEncodedData = exchangeTransport.Base64Encode(strBaseEncodedData); string strResult = exchangeTransport.Send(toCode, strEventID, actionType.ToString(), strBaseEncodedData); XmlDocument xml = new XmlDocument(); xml.LoadXml(strResult); XmlNodeList nodes = xml.GetElementsByTagName("ns3:SendResult"); if (nodes.Count > 0) { string Result = nodes[0].InnerText; if (Result == "false") { throw new Exception(strResult); } } else { throw new Exception(strResult); } } catch (Exception ex) { throw new Exception("接收者编号:[" + toCode + "] 发送出错[" + ex.Message + "]"); } }
/// <summary> /// 运管平台订单同步 正式环境 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _bw_DoWork_Logink(object sender, DoWorkEventArgs e) { DateTime dtNow = DateTime.Now; string msg = dtNow.ToString() + ":【同步TMS运单】 "; MyEventReceiver evevnt = null; ExchangeTransport exchangeTransport = null; int handelCount = 0; try { List <string> senderCodeList = TMSOrderServer.GetAllLoginkSenderCode(); if (senderCodeList.Count == 0) { msg += "没有配置通过运管平台交换数据的上游发货单位"; return; } MyReceiveResponses response = LoginkHelp.Receive(Utility._SecurityURL, Utility._TransportURL, Utility._MyCode, Utility._MyPwd, ref exchangeTransport); if (response == null || response.getEventReceiverList() == null || (response != null && response.getEventReceiverList() != null && response.getEventReceiverList().Count == 0)) { msg += "没有数据接收"; return; } evevnt = response.getEventReceiverList()[0]; string sendCode = evevnt.getEventsender(); if (evevnt.getXmlcontent() != null) { if (!senderCodeList.Contains(sendCode)) { handelCount = 1; msg += "[Code:" + sendCode + "]没有加入系统,不保存此订单数据"; string filePath = Utility.SaveXMLFile(evevnt.getXmlcontent(), dtNow, sendCode); msg += " 已保存XML数据到[" + filePath + "]"; Utility.SaveErrLog(msg, "Order"); return; } try { List <M_TMSOrder> orders = Utility.ParseXMLToObjec <List <M_TMSOrder> >(evevnt.getXmlcontent()); TMSOrderServer.AddTMSOrders_Logink(orders, sendCode); handelCount = 1; Utility.SaveXMLRequestAndRespond(evevnt.getXmlcontent(), string.Empty, "Order", orders.Count.ToString()); msg += "成功同步" + orders.Count + "条数据 Sender[" + sendCode + "]"; } catch (Exception ex) { string filePath = Utility.SaveXMLFile(evevnt.getXmlcontent(), dtNow, sendCode); msg += ex.Message + " ,已保存XML数据到[" + filePath + "]"; SendEmail(new Exception(msg), filePath); } } } catch (Exception ex) { msg += ex.Message + " "; if (ex.Message.Contains("订单解析失败")) { handelCount = 1; } SendEmail(new Exception(msg)); Utility.SaveErrLog(ex.Message, "Order"); } finally { if (evevnt != null && handelCount > 0) { try { if (LoginkHelp.Confirm(exchangeTransport, evevnt.getEventid())) { msg += " 接收确认成功"; } else { msg += " 接收确认失败"; } } catch (Exception ex) { msg += " " + ex.Message; } } Console.WriteLine(msg.Replace("\n", "")); } }