package com.banking.xc.utils.webService.request.flight; import com.banking.xc.entity.FlightContactInfo; import com.banking.xc.entity.FlightData; import com.banking.xc.entity.FlightInfo; import com.banking.xc.entity.FlightPayInfo; import com.banking.xc.entity.Passenger; import com.banking.xc.utils.webService.util.RequestConstant; import com.banking.xc.utils.xml.frame.XmlNode; public class FlightSaveOrderRequest extends FlightRequest{ private final String requestType = RequestConstant.FLIGHT_SAVE_ORDER; private String uid; private String orderType; private String amount; private String ProcessDesc;//省略 //FlightInfo private FlightInfo flightInfo; private Passenger passenger; private FlightContactInfo contactInfo; //可为空 //DeivceInfo忽略 private FlightPayInfo payInfo;//可为空,主要包含信用卡信息。 @Override public String getFlightParams() { XmlNode fltSaveOrderRequestNode = new XmlNode("FltSaveOrderRequest"); fltSaveOrderRequestNode.addNodeByNameAndValue("UID",getUid()); fltSaveOrderRequestNode.addNodeByNameAndValue("OrderType", getOrderType());//ADU fltSaveOrderRequestNode.addNodeByNameAndValue("Amount", getAmount()); fltSaveOrderRequestNode.addNodeByNameAndValue("ProcessDesc", getProcessDesc());//订单处理描述 XmlNode FlightInfoListNode = new XmlNode("FlightInfoList"); fltSaveOrderRequestNode.addChildNode(FlightInfoListNode); XmlNode FlightInfoRequestNode = new XmlNode("FlightInfoRequest"); FlightInfoListNode.addChildNode(FlightInfoRequestNode); FlightInfo flightInfo = getFlightInfo(); FlightData flightData = flightInfo.getFlightData(); FlightInfoRequestNode.addNodeByNameAndValue("DepartCityID", flightData.getDepartCityCode()); FlightInfoRequestNode.addNodeByNameAndValue("ArriveCityID", flightData.getArriveCityCode()); FlightInfoRequestNode.addNodeByNameAndValue("DPortCode", flightData.getDepartAirportCode()); FlightInfoRequestNode.addNodeByNameAndValue("APortCode", flightData.getArriveAirportCode()); FlightInfoRequestNode.addNodeByNameAndValue("AirlineCode", flightData.getAirlineDibitCode()); FlightInfoRequestNode.addNodeByNameAndValue("Flight", flightData.getFlight()); FlightInfoRequestNode.addNodeByNameAndValue("Class", "Y"); FlightInfoRequestNode.addNodeByNameAndValue("SubClass", "H"); FlightInfoRequestNode.addNodeByNameAndValue("TakeOffTime", flightData.getTakeOffTime()); FlightInfoRequestNode.addNodeByNameAndValue("ArrivalTime", flightData.getArriveTime()); FlightInfoRequestNode.addNodeByNameAndValue("Rate", flightData.getRate()); FlightInfoRequestNode.addNodeByNameAndValue("Price", flightData.getPrice()); FlightInfoRequestNode.addNodeByNameAndValue("Tax", flightData.getAdultTax()); FlightInfoRequestNode.addNodeByNameAndValue("OilFee", flightData.getAdultOilFee()); FlightInfoRequestNode.addNodeByNameAndValue("NonRer", flightData.getNonrer()); FlightInfoRequestNode.addNodeByNameAndValue("NonRef", flightData.getNonref()); FlightInfoRequestNode.addNodeByNameAndValue("NonEnd", flightData.getNonend()); FlightInfoRequestNode.addNodeByNameAndValue("RerNote", flightData.getRerNote()); FlightInfoRequestNode.addNodeByNameAndValue("RefNote", flightData.getRefNote()); FlightInfoRequestNode.addNodeByNameAndValue("EndNote", flightData.getEndNote()); FlightInfoRequestNode.addNodeByNameAndValue("Remark", flightData.getRemarks()); FlightInfoRequestNode.addNodeByNameAndValue("EndNote", flightData.getEndNote()); FlightInfoRequestNode.addNodeByNameAndValue("NeedAppl", "F"); FlightInfoRequestNode.addNodeByNameAndValue("Recommend", "2"); FlightInfoRequestNode.addNodeByNameAndValue("Canpost", flightData.getCanPost()); FlightInfoRequestNode.addNodeByNameAndValue("CraftType", flightData.getCraftType()); FlightInfoRequestNode.addNodeByNameAndValue("Quantity", flightData.getQuantity()); FlightInfoRequestNode.addNodeByNameAndValue("Cost", "0"); FlightInfoRequestNode.addNodeByNameAndValue("CostRate", "1.0"); FlightInfoRequestNode.addNodeByNameAndValue("RefundFeeFormulaID", "0"); FlightInfoRequestNode.addNodeByNameAndValue("UpGrade", "T"); FlightInfoRequestNode.addNodeByNameAndValue("TicketType", flightData.getTicketType()); FlightInfoRequestNode.addNodeByNameAndValue("AllowCPType", ""); FlightInfoRequestNode.addNodeByNameAndValue("ProductType", flightData.getProductType()); FlightInfoRequestNode.addNodeByNameAndValue("CanSeparateSale", "Y"); FlightInfoRequestNode.addNodeByNameAndValue("RouteIndex", "1"); FlightInfoRequestNode.addNodeByNameAndValue("InventoryType", "FIX"); //两程航班必填FIX:定额 FAV :见舱两程时一程见舱一程定额不可预定 FlightInfoRequestNode.addNodeByNameAndValue("ProductSource", flightData.getProductSource()); //还有很多元素没加入 XmlNode PassengerListNode = new XmlNode("PassengerList"); fltSaveOrderRequestNode.addChildNode(PassengerListNode); XmlNode PassengerRequestNode = new XmlNode("PassengerRequest"); PassengerListNode.addChildNode(PassengerRequestNode); Passenger passenger = getPassenger(); PassengerRequestNode.addNodeByNameAndValue("PassengerName", passenger.getPassengerName()); PassengerRequestNode.addNodeByNameAndValue("BirthDay", passenger.getBirthDay()); PassengerRequestNode.addNodeByNameAndValue("PassportTypeID", passenger.getPassportTypeID()); PassengerRequestNode.addNodeByNameAndValue("PassportNo", passenger.getPassportNo()); PassengerRequestNode.addNodeByNameAndValue("ContactTelephone ", passenger.getContactTelephone()); PassengerRequestNode.addNodeByNameAndValue("Gender", passenger.getGender()); PassengerRequestNode.addNodeByNameAndValue("InsuranceNum", passenger.getInsuranceNum()); PassengerRequestNode.addNodeByNameAndValue("NationalityCode", passenger.getNationalityCode()); FlightPayInfo flightPayInfo = getPayInfo(); if(flightPayInfo!=null){ XmlNode CreditCardInfoNode = new XmlNode("CreditCardInfo"); fltSaveOrderRequestNode.addChildNode(CreditCardInfoNode); CreditCardInfoNode.addNodeByNameAndValue("CreditCardType", flightPayInfo.getCreditCardType()); CreditCardInfoNode.addNodeByNameAndValue("CardTypeName", flightPayInfo.getCardTypeName()); CreditCardInfoNode.addNodeByNameAndValue("CreditCardNumber", flightPayInfo.getCreditCardNumber()); CreditCardInfoNode.addNodeByNameAndValue("CardTypeName", flightPayInfo.getCardTypeName()); CreditCardInfoNode.addNodeByNameAndValue("Validity", flightPayInfo.getValidity()); CreditCardInfoNode.addNodeByNameAndValue("CardBin", flightPayInfo.getCardBin()); CreditCardInfoNode.addNodeByNameAndValue("CardHolder", flightPayInfo.getCardHolder()); CreditCardInfoNode.addNodeByNameAndValue("IdCardType", flightPayInfo.getIdCardType()); CreditCardInfoNode.addNodeByNameAndValue("IdNumber", flightPayInfo.getIdNumber()); CreditCardInfoNode.addNodeByNameAndValue("CVV2No", flightPayInfo.getCVV2No()); CreditCardInfoNode.addNodeByNameAndValue("AgreementCode", flightPayInfo.getAgreementCode()); } return fltSaveOrderRequestNode.toString(); } @Override public String getRequestType() { return requestType; } @Override public Boolean checkParams() { // TODO Auto-generated method stub return null; } public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getOrderType() { return orderType; } public void setOrderType(String orderType) { this.orderType = orderType; } public String getProcessDesc() { return ProcessDesc; } public void setProcessDesc(String processDesc) { ProcessDesc = processDesc; } public String getAmount() { return amount; } public void setAmount(String amount) { this.amount = amount; } public FlightInfo getFlightInfo() { return flightInfo; } public void setFlightInfo(FlightInfo flightInfo) { this.flightInfo = flightInfo; } public Passenger getPassenger() { return passenger; } public void setPassenger(Passenger passenger) { this.passenger = passenger; } public FlightContactInfo getContactInfo() { return contactInfo; } public void setContactInfo(FlightContactInfo contactInfo) { this.contactInfo = contactInfo; } public FlightPayInfo getPayInfo() { return payInfo; } public void setPayInfo(FlightPayInfo payInfo) { this.payInfo = payInfo; } /** * <FltSaveOrderRequest> <UID>159c906a-aa28-4f54-b609-59d2c105fde2</UID> <OrderType>ADU</OrderType> <Amount>1590</Amount> <ProcessDesc></ProcessDesc> <FlightInfoList> <FlightInfoRequest> <DepartCityID>1</DepartCityID> <ArriveCityID>30</ArriveCityID> <DPortCode>PEK</DPortCode> <APortCode>SZX</APortCode> <AirlineCode>CZ</AirlineCode> <Flight>CZ3160</Flight> <Class>Y</Class> <SubClass>H</SubClass> <TakeOffTime>2012-07-20T15:00:00</TakeOffTime> <ArrivalTime>2012-07-20T17:50:00</ArrivalTime> <Rate>1.0</Rate> <Price>1400</Price> <Tax>50</Tax> <OilFee>140.0000</OilFee> <NonRer>T</NonRer> <NonRef>T</NonRef> <NonEnd>T</NonEnd> <RerNote>不得更改。</RerNote> <RefNote>不得退票。</RefNote> <EndNote>不得签转。</EndNote> <Remark>yeye特价产品^</Remark> <NeedAppl>F</NeedAppl> <Recommend>2</Recommend> <Canpost>T</Canpost> <CraftType>333</CraftType> <Quantity>10</Quantity> <Cost>0</Cost> <CostRate>1.0</CostRate> <RefundFeeFormulaID>0</RefundFeeFormulaID> <UpGrade>T</UpGrade> <TicketType>1111</TicketType> <AllowCPType>1111</AllowCPType> <DeliverTicketType>1101</DeliverTicketType> <ProductType /> <CanSeparateSale /> <RouteIndex>0</RouteIndex> <InventoryType>FAV</ InventoryType> < ProductSource>1< ProductSource> </FlightInfoRequest> </FlightInfoList> <PassengerList> <PassengerRequest> <PassengerName>携程</PassengerName> <BirthDay>1984-01-01</BirthDay> <PassportTypeID>1</PassportTypeID> <PassportNo>341224198405174912</PassportNo> <ContactTelephone /> <Gender>M</Gender> <InsuranceNum>0</InsuranceNum> <NationalityCode /> </PassengerRequest> </PassengerList> <!-- <ContactInfo><!--可为空--> <ContactName>携程</ContactName> <ConfirmOption>TEL</ConfirmOption> <MobilePhone>18015021548</MobilePhone> <ContactTel /> <ForeignMobile /> <MobileCountryFix /> <ContactEMail>ee@ctrip.com</ContactEMail> <ContactFax /> </ContactInfo> <DeliverInfo><!--可为空--> <DeliveryType>PJN</DeliveryType> <SendTicketCityID>0</SendTicketCityID> <OrderRemark></OrderRemark> <PJS> <Receiver /> <Province /> <City /> <Canton /> <Address /> <PostCode /> </PJS> </DeliverInfo> <PayInfo><!--可为空--> <CreditCardInfo><!--可为空--> <CardInfoID>0</CardInfoID> <CreditCardType>11</CreditCardType> <CreditCardNumber>hiNI6GWod48+siR777rXyLgBgE0dF6f4</CreditCardNumber> <Validity>gSb+/Uj5DEE=</Validity> <CardBin>uffYuvmpsOg=</CardBin> <CardHolder>5/bqCaNz3yw=</CardHolder> <IdCardType>gBG1pcTHP+M=</IdCardType> <IdNumber>EDXkCmkgwpjSs25jdmMPk6hi0ZpuQ1mV</IdNumber> <CVV2No>0DXVwD+y96Y=</CVV2No> <AgreementCode></AgreementCode> <Eid></Eid> <Remark></Remark> <IsClient>true</IsClient> <CCardPayFee>0</CCardPayFee> <CCardPayFeeRate>0</CCardPayFeeRate> <Exponent>0</Exponent> <ExchangeRate></ExchangeRate> <FAmount></FAmount> </CreditCardInfo> </PayInfo>--> </FltSaveOrderRequest> */ }