2015-07-07 4 views
2

Я пытаюсь сделать первый простой проект soapUI работать, чтобы запросить действительный сеанс. Я имею в виду пример https://developer.sabre.com/docs/read/soap_basics/getting_started Soap UI.Первый пример SoapUI - Saber

У нас есть свое имя пользователя, пароль, IPCC, и я генерирую диалог диалога, как предлагается в pdf. Я оставляю «DEFAULT» для домена.

Независимо от конечной точки, которую я установил (разработка, cert, prod), я всегда получаю плохую аутентификацию, когда я пытаюсь выполнить первый запрос RequestSessionsRQ.

Возможно, у меня есть некоторые очень простые, но я не могу понять, есть ли у вас какие-либо предложения?

UPDATE:

это запрос SOAP:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> 
    <SOAP-ENV:Header> 
     <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0"> 
     <eb:From> 
      <eb:PartyId type="urn:x12.org:IO5:01">WS_Client</eb:PartyId> 
     </eb:From> 
     <eb:To> 
      <eb:PartyId type="urn:x12.org:IO5:01">WS_Provider</eb:PartyId> 
     </eb:To> 
     <eb:CPAId>${#Project#Organization}</eb:CPAId> 
      <eb:ConversationId>${#Project#ConversationID}_${=System.currentTimeMillis()} </eb:ConversationId> 
     <eb:Service eb:type="OTA">SessionCreateRQ</eb:Service> 
     <eb:Action>SessionCreateRQ</eb:Action> 
     <eb:MessageData> 
      <eb:MessageId>Waynaut_id_${=System.currentTimeMillis()}</eb:MessageId> 
      <eb:Timestamp>${=import java.text.SimpleDateFormat ; new SimpleDateFormat("YYYY-MM-dd'T'hh:mm:ss").format(new Date(System.currentTimeMillis() - 0 * 3600 * 1000))}Z</eb:Timestamp> 
      <eb:TimeToLive>${=import java.text.SimpleDateFormat ; new SimpleDateFormat("YYYY-MM-dd'T'hh:mm:ss").format(new Date(System.currentTimeMillis() -6 * 3600 * 1000))}Z</eb:TimeToLive> 
     </eb:MessageData> 
     </eb:MessageHeader> 
     <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/12/utility"> 
     <wsse:UsernameToken> 
      <wsse:Username>${#Project#Username}</wsse:Username> 
      <wsse:Password>${#Project#Password}</wsse:Password> 
      <Organization>${#Project#Organization}</Organization> 
      <Domain>DEFAULT</Domain> 
     </wsse:UsernameToken> 
     </wsse:Security> 
    </SOAP-ENV:Header> 
    <SOAP-ENV:Body> 
     <SessionCreateRQ> 
     <POS> 
      <Source PseudoCityCode="${#Project#Organization}"/> 
     </POS> 
     </SessionCreateRQ> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

где лексемы как $ {# Project # Организация} подставляются с нашими учетными данными.

и эти конечные точки, которые я пробовал: - https://sws3-sts.cert.sabre.com/ - https://sws3-crt.cert.sabre.com/ - https://webservices3.sabre.com/

Я понятия не имею, что «PartyId» должен быть и оставил значения по умолчанию, приведенные в примере документации.

Это ответ:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap-env:Header> 
     <eb:MessageHeader eb:version="1.0" soap-env:mustUnderstand="1" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader"> 
     <eb:From> 
      <eb:PartyId eb:type="URI">WS_Provider</eb:PartyId> 
     </eb:From> 
     <eb:To> 
      <eb:PartyId eb:type="URI">WS_Client</eb:PartyId> 
     </eb:To> 
     <eb:CPAId>P4FF</eb:CPAId> 
     <eb:ConversationId>TEST-CONVERSATION_1436438834114</eb:ConversationId> 
     <eb:Service eb:type="OTA">SessionCreateRQ</eb:Service> 
     <eb:Action>ErrorRS</eb:Action> 
     <eb:MessageData> 
      <eb:MessageId>[email protected]</eb:MessageId> 
      <eb:Timestamp>2015-07-09T10:47:12</eb:Timestamp> 
      <eb:RefToMessageId>Waynaut_id_1436438834114</eb:RefToMessageId> 
     </eb:MessageData> 
     </eb:MessageHeader> 
     <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"/> 
    </soap-env:Header> 
    <soap-env:Body> 
     <soap-env:Fault> 
     <faultcode>soap-env:Client.AuthenticationFailed</faultcode> 
     <faultstring>Authentication failed</faultstring> 
     <detail> 
      <StackTrace>com.sabre.universalservices.base.security.AuthenticationException: errors.authentication.USG_AUTHENTICATION_FAILED</StackTrace> 
     </detail> 
     </soap-env:Fault> 
    </soap-env:Body> 
</soap-env:Envelope> 

ответ

0

Try AA для домена, если вы являетесь клиентом Saber Travel Network.

+0

спасибо за ответ, это не сработало, хотя :(Я вижу, что в моих запросах есть «PartyId», который выглядит довольно случайным, я использую те, которые указаны в документации, следует ли мне их изменить? –

+0

вы можете поделиться запрос и ответ? – jmacagno

+0

привет, нормально. Я обновил запрос и ответ, исправил все временные метки и попытался использовать все сочетания того, что было предложено здесь, но не повезло :( –

1

Try 'SessionCreate' для имени службы, а не 'SessionCreateRQ'

Вот пример:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Header> 
     <MessageHeader xmlns="http://www.ebxml.org/namespaces/messageHeader"> 
      <From> 
       <PartyId>WebServiceClient</PartyId> 
      </From> 
      <To> 
       <PartyId>WebServiceSupplier</PartyId> 
      </To> 
      <CPAId>{ipcc}</CPAId> 
      <ConversationId>657ADE1A-907C-49F9-9F87-94022CD9C51C</ConversationId> 
      <Service>SessionCreate</Service> 
      <Action>SessionCreateRQ</Action> 
      <MessageData> 
       <MessageId>9314594d-6c40-406b-9029-b887b13906b6</MessageId> 
       <Timestamp>2015-07-07T16:57:06Z</Timestamp> 
      </MessageData> 
     </MessageHeader> 
     <Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext"> 
      <UsernameToken> 
       <Username>{usr}</Username> 
       <Password>{pwd}</Password> 
       <Organization xmlns="">{ipcc}</Organization> 
       <Domain xmlns="">DEFAULT</Domain> 
      </UsernameToken> 
     </Security> 
    </soap:Header> 
    <soap:Body> 
     <SessionCreateRQ xmlns="http://www.opentravel.org/OTA/2002/11"> 
      <POS> 
       <Source PseudoCityCode="{ipcc}" /> 
      </POS> 
     </SessionCreateRQ> 
    </soap:Body> 
</soap:Envelope> 

Я ударяя https://sws-crt.cert.sabre.com

0

Вот пример XML для сессии создать что я использую. Это работает очень хорошо.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:mes="http://www.ebxml.org/namespaces/messageHeader" xmlns:ns="http://www.opentravel.org/OTA/2002/11"> 
    <soapenv:Header> 
     <sec:Security> 
     <sec:UsernameToken> 
      <sec:Username>Username</sec:Username> 
      <sec:Password>Password Here</sec:Password> 
      <Organization>xxxxx</Organization> 
      <Domain>Default</Domain> 
     </sec:UsernameToken> 
     <sec:BinarySecurityToken></sec:BinarySecurityToken> 
     </sec:Security> 
     <mes:MessageHeader mes:id="" mes:version=""> 
     <mes:From> 
      <mes:PartyId mes:type="urn:x12.org.IO5:01">com.abacus.SWSSession</mes:PartyId> 
      <mes:Role></mes:Role> 
     </mes:From> 
     <mes:To> 
      <mes:PartyId mes:type="urn:x12.org.IO5:01">webservices.sabre.com</mes:PartyId> 
      <mes:Role></mes:Role> 
     </mes:To> 
     <mes:CPAId>xxxxx</mes:CPAId> 
     <mes:ConversationId>[email protected]</mes:ConversationId> 
     <mes:Service mes:type="Sabre xml">SessionCreateRQ</mes:Service> 
     <mes:Action>SessionCreateRQ</mes:Action> 
     <mes:MessageData> 
      <mes:MessageId>[email protected]</mes:MessageId> 
      <mes:Timestamp>2015-03-19T16:42:11</mes:Timestamp> 
      <mes:TimeToLive>#3/20/2015 12:42:11 AM#</mes:TimeToLive> 
      <mes:Timeout>30000</mes:Timeout> 
     </mes:MessageData> 
     <mes:DuplicateElimination></mes:DuplicateElimination> 
     <mes:Description xml:lang=""></mes:Description> 
     </mes:MessageHeader> 
    </soapenv:Header> 
    <soapenv:Body> 
     <ns:SessionCreateRQ returnContextID=""> 
     <ns:POS> 
      <ns:Source PseudoCityCode="xxxxx"/> 
     </ns:POS> 
     </ns:SessionCreateRQ> 
    </soapenv:Body> 
</soapenv:Envelope> 

ххххх - Представляет код МГЭИК.

Мой идентификатор участника остается таким же для всех запросов. , и это хорошо работает на моих конечных точках cert и prod.

также возможно, что ваше имя пользователя и пароль не имеют доступа к сабе, пожалуйста, свяжитесь с ними и проверьте, что логины активны.

+0

откуда я могу найти код IPCC ?? –

+0

IPCC вы получаете fr om Sabre, его нельзя – fizmhd

0

Здесь вы можете увидеть очень простой пример.

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"> 
    <SOAP-ENV:Header> 
     <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0"> 
      <eb:From> 
       <eb:PartyId type="urn:x12.org:IO5:01">999999</eb:PartyId> 
      </eb:From> 
      <eb:To> 
       <eb:PartyId type="urn:x12.org:IO5:01">123123</eb:PartyId> 
      </eb:To> 
      <eb:CPAId>AM</eb:CPAId> <!-- Set the Airline code , two characters --> 
      <eb:ConversationId>WaiversIT</eb:ConversationId> 
      <eb:Service>SessionCreateRQ</eb:Service> 
      <eb:Action>SessionCreateRQ</eb:Action> 
      <eb:MessageData> 
       <eb:MessageId>1000</eb:MessageId>    
      </eb:MessageData> 
     </eb:MessageHeader> 
     <wsse:Security> 
      <wsse:UsernameToken> 
       <wsse:Username>11111</wsse:Username> 
       <wsse:Password>Password</wsse:Password> 
       <Organization>AM</Organization><!-- Set the Airline code , two characters --> 
       <Domain>AM</Domain><!-- Set the Airline code , two characters --> 
      </wsse:UsernameToken> 
     </wsse:Security> 
    </SOAP-ENV:Header> 
    <SOAP-ENV:Body> 
     <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="1.0"> 
      <eb:Reference xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="cid:rootelement" xlink:type="simple"/> 
     </eb:Manifest> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 
0

SEI: https://webservices.sabre.com

<soapenv:Header> 

     <sec:Security> 
     <sec:UsernameToken> 
      <sec:Username>${Properties#erp_username}</sec:Username> 
      <sec:Password>${Properties#pass_code}</sec:Password> 
      <sec:NewPassword>${Properties#pass_code}</sec:NewPassword> 
      <Organization>${Properties#ipcc}</Organization> 
      <Domain>${Properties#domain}</Domain> 
     </sec:UsernameToken> 
     <!--Optional:--> 
     <sec:SabreAth /> 
     <sec:BinarySecurityToken /> 
     </sec:Security> 

     <mes:MessageHeader mes:id="1" mes:version="2.0"> 
     <mes:From> 
      <mes:PartyId mes:type="urn:x12.org:IO5:01">${Properties#from_patryid}</mes:PartyId> 
      <mes:Role /> 
     </mes:From> 
     <mes:To> 
      <mes:PartyId mes:type="urn:x12.org:IO5:01">${Properties#to_patryid}</mes:PartyId> 
      <mes:Role /> 
     </mes:To> 
     <mes:CPAId>IPCC</mes:CPAId> 
      <mes:ConversationId>${Properties#ConversationID}_${=System.currentTimeMillis()}</mes:ConversationId> 
     <mes:Service mes:type="sabreXML">Session</mes:Service> 
     <mes:Action>SessionCreateRQ</mes:Action> 
     <mes:MessageData> 
      <mes:MessageId>bilat_msg_id_${=System.currentTimeMillis()}</mes:MessageId> 
      <mes:Timestamp>${=import java.text.SimpleDateFormat ; new SimpleDateFormat("YYYY-MM-dd'T'hh:mm:ss").format(new Date(System.currentTimeMillis() - 0 * 3600 * 1000))}Z</mes:Timestamp> 
      <mes:RefToMessageId /> 
      <mes:TimeToLive>${=import java.text.SimpleDateFormat ; new SimpleDateFormat("YYYY-MM-dd'T'hh:mm:ss").format(new Date(System.currentTimeMillis() - 0 * 3600 * 1000))}Z</mes:TimeToLive> 
      <mes:Timeout>100</mes:Timeout> 
     </mes:MessageData> 
     <!--Optional:--> 
     <mes:DuplicateElimination /> 
     </mes:MessageHeader> 
    </soapenv:Header> 

    <soapenv:Body> 
     <ns:SessionCreateRQ returnContextID="true"> 
     <ns:POS> 
      <ns:Source PseudoCityCode="${Properties#ipcc}"/> 
     </ns:POS> 
     </ns:SessionCreateRQ> 
    </soapenv:Body> 

</soapenv:Envelope> 
2

Это может быть поздно, но на всякий случай - я попробовал ваш точно такой же запрос, и он работал на меня (с собственными учетными данными) ,

Возможно, что ваши учетные данные заблокированы (например, из-за последовательных неудачных попыток получить сеанс), поэтому вы можете связаться с веб-службой[email protected], чтобы подтвердить статус своих учетных данных.

Обязательно укажите имя пользователя и IPCC (Организация) в своем сообщении.

 Смежные вопросы

  • Нет связанных вопросов^_^