static void Test5() { string fileName = "20200729_B2B_Resp.txt"; B2B.B2BRequest myReq = new B2BRequest("техническая жидкость"); File.WriteAllText(fileName, myReq.GetResponse); //string testStr = myReq.GetResponse; B2BResponse myResp = new B2BResponse(myReq); }
public void TestAuto() { //PnrAnalysis.PnrResource pnrs = new PnrResource(); //CityInfo cinfo = pnrs.CityDictionary.CityList.Where(p => p.key == "HCJ").FirstOrDefault(); //return; //PnrAnalysis.SendNewPID sendAuto = new PnrAnalysis.SendNewPID(); //PnrAnalysis.Model.BSPParam bsp = new PnrAnalysis.Model.BSPParam(); //bsp.CarrayCode = "3U"; //bsp.Pnr = "HPJXX9"; //bsp.CpPrice = 1150m; //bsp.PrintNo = "10"; //bsp.Param.ServerIP = "10.11.5.251"; //bsp.Param.ServerPort = 399; //bsp.Param.Office = "CTU186"; //bsp.Param.WebUserName = "******"; //PnrAnalysis.Model.BSPResponse response = sendAuto.BSPAutoIssue(bsp); AutoTicketService autoTicketService = new AutoTicketService(); string strData = "<pnrinfo><code>1</code><pnr>MCLE2D</pnr><air>CA</air><pnrsrcid>05635108590040151070</pnrsrcid><message></message><tickets><ticket><passenger>%c2%de%cb%bc%bb%d5</passenger><tktno>999-2344273598</tktno></ticket></tickets></pnrinfo>"; B2BResponse b2BResponse = autoTicketService.SyncTicketCall(strData); //DataSet ds = XmlToDataSet(strData); }
public void Process(HttpRequest request, HttpResponse response) { StringBuilder sbLog = new StringBuilder(); string result = "false"; try { sbLog.Append("Start================自动出票通知=====================================================\r\n"); sbLog.Append("时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\r\n"); sbLog.Append("内容:\r\n"); NameValueCollection nv = new NameValueCollection(); nv.Add(request.Form); nv.Add(request.QueryString); string ticketXML = string.Empty; string payXML = string.Empty; foreach (string key in nv.Keys) { sbLog.Append(key + "=" + nv[key] + "\r\n"); if (key == "ticketnoinfo") { ticketXML = nv[key]; } else if (key == "paymentinfo") { payXML = nv[key]; } } if (!string.IsNullOrEmpty(ticketXML)) { #region //B2B自动出票通知 B2BResponse b2BResponse = autoTicketService.SyncTicketCall(ticketXML); List <AutoTicketInfo> b2bList = b2BResponse.TicketNofityInfo.AutoTicketList; if (b2bList.Count > 0) { string orderId = b2BResponse.TicketNofityInfo.FlatformOrderId; Order order = orderRepository.FindAll(p => p.OrderId == orderId).FirstOrDefault(); if (order != null && order.OrderStatus != EnumOrderStatus.IssueAndCompleted) { Dictionary <string, string> ticketDict = new Dictionary <string, string>(); foreach (AutoTicketInfo item in b2bList) { if (!ticketDict.ContainsKey(item.PassengerName)) { ticketDict.Add(item.PassengerName, item.TicketNumber); } } var behavior = order.State.GetBehaviorByCode("TicketsIssue"); behavior.SetParame("ticketDict", ticketDict); behavior.SetParame("operatorName", "系统"); behavior.SetParame("platformCode", "系统"); behavior.SetParame("opratorSource", "通知"); behavior.SetParame("remark", order.Policy.PolicyType + "自动出票"); behavior.Execute(); unitOfWorkRepository.PersistUpdateOf(order); unitOfWork.Commit(); result = "true"; sbLog.Append("处理成功\r\n"); try { MessageQueueManager.SendMessage(orderId, 0); } catch (Exception e) { Logger.WriteLog(LogType.ERROR, string.Format("{0}:写入总表失败", order.OrderId), e); } } else { sbLog.AppendFormat("未找到订单号:{0}\r\n", orderId); } } else { sbLog.AppendFormat("{0}\r\n", b2BResponse.Remark); } #endregion } else if (!string.IsNullOrEmpty(payXML)) { //B2B自动支付通知 result = "true"; } } catch (Exception e) { sbLog.Append("异常信息:" + e.Message + e.StackTrace + "\r\n"); } finally { sbLog.Append("End=====================================================================\r\n\r\n"); new CommLog().WriteLog("B2BNotify", sbLog.ToString()); //回复数据 true false response.WriteLine(result); } }
public override Task <bool> Event(Channel channel, object model, BasicDeliverEventArgs ea, InputVariables input, OutputVariables output) { var idString = Encoding.UTF8.GetString((byte[])ea.BasicProperties.Headers["id"]); // Вытаскиваем инфу в заголовках? var id = Guid.Parse(idString); //logger.Error("Пишем лог логики модуля"); //loggerResponse.Error("Пишем лог респонса"); // loggerResponse.Error($"{JsonConvert.SerializeObject(input)}"); var data = new Dictionary <string, string> { { StructureType.LoginId, input.LoginId }, { StructureType.Password, input.Password }, { StructureType.VIN, input.VIN } }; var b2bParams = getB2bParameters(data); var request = new B2BRequest() { parameter = b2bParams.ToArray() }; B2BResponse response = null; try { response = audaHistoryServices.History(request); } catch (WebException we) { if (false) //TODO: Обработка ошибок (недостаточно данных для реализации) { logger.Error($"Error"); return(Task.FromResult(true)); } else { throw we; } } if (response == null || response.text == null) { logger.Error($"{id} | Некорректный response. {JsonConvert.SerializeObject(response)}"); return(Task.FromResult(true)); } output.Response = response.message; // Если требуется повторить задание if (false) { return(Task.FromResult(false)); } // Можно создать задачу для другого модуля if (false) { channel.Props.Add("id", Encoding.UTF8.GetBytes(Guid.NewGuid().ToString())); channel.Publish(Exchanges.TestExchange, RabbitSettings.TestExchange.Routing.Test); } return(Task.FromResult(true)); }