Я работаю над новым проектом, для этого проекта мне нужно использовать SOAP. Я новичок в этом SOAP. Я обновил свою проектную документацию. В этой документации он имеет WSDL и XML-запрос. С помощью WSDL и XML-запроса boath я могу отправить XML-запрос. Bellow Я пишу WSDL и XML-запрос. Пожалуйста, помогите мне.
Спасибо.
WSDL:
http://acceptance.travelstreet.com/hotelsv3/components/hotels_ws.cfc?wsdl
XML-запрос:
<?xml version="1.0" encoding="utf-8"?> <OTA_HotelAvailRQ Version="1.0"> <POS> <Source> <UniqueId Id="username:password" /> </Source> </POS> <AvailRequestSegments> <AvailRequestSegment> <StayDateRange End="2011-08-15" Start="2011-08-14" /> <RoomStayCandidates> <RoomStayCandidate Quantity="1"> <GuestCounts> <GuestCount AgeQualifyingCode="10" Count="1" /> </GuestCounts> </RoomStayCandidate> </RoomStayCandidates> <HotelSearchCriteria> <Criterion> <HotelRef Destination="East London, South Africa" CityCode="" CountryCode="" HotelName="" MinHotelRating="1"/> <SearchCurrency>EUR</SearchCurrency> <AdditionalInfo Value="1" /> <Language>EN</Language> </Criterion> </HotelSearchCriteria> </AvailRequestSegment> </AvailRequestSegments> </OTA_HotelAvailRQ>
Я предлагаю вам прочитать о SoapClient PHP . В руководстве по PHP есть много хороших примеров.
Чтобы начать работу, создайте объект:
$client = new SoapClient('http://www.example.com/end_point.wsdl');
Затем вызовите метод:
$result = $client->SomeFunction($data);
где SomeFunction
– это имя метода, которое вы хотите вызвать в службе, а $ data – это массив PHP, представляющий структуру данных XML, которую вы хотите отправить.
Надеюсь, это поможет.
[EDIT] Просто уточнить в свете дальнейших вопросов OP:
При использовании PHP SOAPClient вам не нужно создавать фактический код XML. Вам нужно поместить данные в массив PHP, а SOAPClient преобразует его в XML для вас. Ключи массива должны быть названы для имен элементов XML, а значения массива – значения элементов. Используйте вложенные массивы для вложенных элементов XML.
Для атрибутов вы должны вызвать SoapVar с XSD_ANYXML http://php.net