我正在尝试使用此公式创建密码摘要以获取以下变量,而我的代码只是不匹配.不知道我做错了什么,但我承认当我需要帮助时.希望有人可以提供帮助.
文档中的公式: Base64(SHA1(NONCE + TIMESTAMP + SHA1(PASSWORD)))
正确的密码摘要答案: +LzcaRc+ndGAcZIXmq/N7xGes+k=
ColdFusion代码:
<cfSet PW = "AMADEUS">
<cfSet TS = "2015-09-30T14:12:15Z">
<cfSet NONCE = "secretnonce10111">
<cfDump var="#ToBase64(Hash(NONCE & TS & Hash(PW,'SHA-1'),'SHA-1'))#">
Run Code Online (Sandbox Code Playgroud)
我的代码输出:
Njk0MEY3MDc0NUYyOEE1MDMwRURGRkNGNTVGOTcyMUI4OUMxM0U0Qg==
Run Code Online (Sandbox Code Playgroud)
我显然做错了什么,但因为我的生活无法弄清楚是什么.任何人?Bueller?
在尝试使用SozUI(如mozila海报,Google restclient应用程序或我的.net代码)调用我的Amadeus Fare_masterpricetravelboard服务时,它会返回以下错误消息:
表示消息寻址属性的标头无效,无法处理消息
同样的Web服务在SOAP UI工具中运行良好.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://xml.amadeus.com/2010/06/Security_v1" xmlns:typ="http://xml.amadeus.com/2010/06/Types_v1" xmlns:iat="http://www.iata.org/IATA/2007/00/IATA2010.1" xmlns:app="http://xml.amadeus.com/2010/06/AppMdw_CommonTypes_v3" xmlns:link="http://wsdl.amadeus.com/2010/06/ws/Link_v1" xmlns:ses="http://xml.amadeus.com/2010/06/Session_v3" xmlns:fmp="http://xml.amadeus.com/FMPTBQ_10_3_1A">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<add:MessageID xmlns:add="http://www.w3.org/2005/08/addressing">65449120-2aa0-46b0-9dcc-c40c6439836c</add:MessageID>
<wsa:Action>http://webservices.amadeus.com/FMPTBQ_10_3_1A</wsa:Action>
<add:To xmlns:add="http://www.w3.org/2005/08/addressing">https://nodeD1.test.webservices.amadeus.com/1ASIWIBEWWZ</add:To>
<link:TransactionFlowLink xmlns:link="http://wsdl.amadeus.com/2010/06/ws/Link_v1" />
<oas:Security xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<oas:UsernameToken oas1:Id="UsernameToken-1" xmlns:oas1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<oas:Username>WSWWZIBE</oas:Username>
<oas:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">EoCeDbDbThB=</oas:Nonce>
<oas:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">Hr2HRG8j0dTH19kh52wQ5aqMxhU=</oas:Password>
<oas1:Created>2014-07-19T12:33:47:530Z</oas1:Created>
</oas:UsernameToken>
</oas:Security>
<AMA_SecurityHostedUser xmlns="http://xml.amadeus.com/2010/06/Security_v1">
<UserID POS_Type="1" PseudoCityCode="THRI4213V" RequestorType="U" />
</AMA_SecurityHostedUser>
</soapenv:Header>
<soapenv:Body>
<Fare_MasterPricerTravelBoardSearch>
<numberOfUnit>
<unitNumberDetail>
<numberOfUnits>1</numberOfUnits>
<typeOfUnit>PX</typeOfUnit>
</unitNumberDetail>
<unitNumberDetail>
<numberOfUnits>250</numberOfUnits>
<typeOfUnit>RC</typeOfUnit>
</unitNumberDetail>
</numberOfUnit>
<paxReference>
<ptc>ADT</ptc>
<traveller>
<ref>1</ref>
</traveller>
</paxReference>
<fareOptions>
<pricingTickInfo>
<pricingTicketing>
<priceType>RP</priceType>
<priceType>RU</priceType>
<priceType>TAC</priceType>
</pricingTicketing>
</pricingTickInfo>
</fareOptions>
<itinerary>
<requestedSegmentRef>
<segRef>1</segRef>
</requestedSegmentRef>
<departureLocalization>
<departurePoint> …Run Code Online (Sandbox Code Playgroud) 我在 java 中有这段代码,我需要在 Go 中重现。
String nonce = new BigInteger(130, new SecureRandom()).toString(32);
Run Code Online (Sandbox Code Playgroud)
是为 GDS amadeussoap 标头 4 生成随机数的唯一方法。
谢谢
我的 amadeus ws travel build 一直有问题 每次我尝试为酒店创建预订时,我总是收到此错误
17|会议|没有就目的地达成一致
这是我的代码 // curl url
$soapUrl = "http://amadeusws.tripxml.com/TripXML/wsTravelBuild_v03.asmx";
$xml_post_string = "<?xml version='1.0' encoding='utf-8'?>
<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>
<soap:Header>
<TripXML xmlns='http://amadeusws.tripxml.com/wsTravelBuild'>
<userName>string</userName>
<password>string</password>
<compressed>boolean</compressed>
</TripXML>
</soap:Header>
<soap:Body>
<wmTravelBuild xmlns='http://traveltalk.com/wsTravelBuild'>
<OTA_TravelItineraryRQ>
<POS>
<Source PseudoCityCode='JNBZA21ZZ' ISOCurrency='NGN'>
<RequestorID Type='21' ID='RubyTravel'/></Source>
<TPA_Extensions>
<Provider>
<Name>Amadeus</Name>
<System>Test</System>
<Userid>user</Userid>
<Password>user</Password>
</Provider>
</TPA_Extensions>
</POS>
<OTA_HotelResRQ><HotelReservations>
<HotelReservation RoomStayReservation='1'>
<RoomStays>
<RoomStay>
<RoomRates>
<RoomRate BookingCode='Q4WTPQJ' NumberOfUnits='1' RatePlanCode='PRO'>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode='ADT' Age='0' Count='1' />
</GuestCounts>
<TimeSpan Start='2017-08-20' Duration='' End='2017-08-23' >
</TimeSpan>
<Guarantee GuaranteeType='GuaranteeRequired'>
<GuaranteesAccepted> …Run Code Online (Sandbox Code Playgroud) C# 代码:
public static void CallWebService(string XmlText)
{
try
{
var _url = "https://nodeD1.test.webservices.amadeus.com/1ASIWMLFPNP";// "https://noded1.test.webservices.amadeus.com/1asiwmlfpnp";
var _action = "http://webservices.amadeus.com/fmptbq_14_3_1a";
XmlDocument soapEnvelopeXml = CreateSoapEnvelope(XmlText);
HttpWebRequest webRequest = CreateWebRequest(_url, _action);
webRequest = InsertSoapEnvelopeIntoWebRequest(soapEnvelopeXml, webRequest);
// begin async call to web request.
IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);
// suspend this thread until call is complete. You might want to
// do something usefull here like update your UI.
asyncResult.AsyncWaitHandle.WaitOne();
// get the response from the completed web request.
string soapResult;
using (WebResponse webResponse …Run Code Online (Sandbox Code Playgroud) 我有两个从 Web API 返回的 Json,其中包含动态大小数组“联系人”和“设施”。
通常我将使用以下代码访问 Json 中的固定大小数组“结果”,因为我正在修复大小。
string json = _obj.GetJsonResult(url);
Hotel hotel = Newtonsoft.Json.JsonConvert.DeserializeObject<Hotel>(json);
hotelName = hotel.results[0].property_name;
Run Code Online (Sandbox Code Playgroud)
我尝试了以下链接和以下代码来获取动态数组大小,但它似乎不起作用。
var jObject = JObject.Parse(json);
JArray jArray = (JArray)jObject["hotel.results[0].contacts"];
int length = jArray.Count;
Run Code Online (Sandbox Code Playgroud)
杰森一号
{
"results": [
{
"property_code": "FGPENOTP",
"property_name": "Olive Tree Penang",
"location": {
"latitude": 5.32708,
"longitude": 100.27944
},
"address": {
"line1": "No 76 Jalan Mahsuri",
"city": "Bayan Lepas",
"postal_code": "11950",
"country": "MY"
},
"total_price": {
"amount": "265.00",
"currency": "MYR"
},
"min_daily_rate": {
"amount": "250.00",
"currency": "MYR" …Run Code Online (Sandbox Code Playgroud) 我正在研究Amadeus API并使用Air_MultiAvailability.它给了我航班搜索结果数据但没有给我航班价格.所以我需要以价格获得所有航班的详细信息.
我不知道我是否使用了正确的API,但我查看了价格详情的航班搜索数据.
请帮助