2016-11-12 4 views
1

мне нужно сделать мыло PHP, чтобы получить купоны от https://planetwin365.com/Controls/CouponWS.asmx?wsdlПолучить элемент из WSDL в PHP с использованием мыла

WSDL, о котором идет речь Planetwin365. Сниппет в вопросе выглядит примерно так:

<wsdl:service name="CouponWS"> 
<wsdl:port name="CouponWSSoap" binding="tns:CouponWSSoap"> 
<soap:address location="http://planetwin365.com/Controls/CouponWS.asmx"/> 
</wsdl:port> 
<wsdl:port name="CouponWSSoap12" binding="tns:CouponWSSoap12"> 
<soap12:address location="http://planetwin365.com/Controls/CouponWS.asmx"/> 
</wsdl:port> 
</wsdl:service> 
</wsdl:definitions> 

В настоящее время я делаю это:

$xml = new DOMDocument(); 
$xml->load($this->wsdl); 
$version = $xml->getElementsByService('CouponWS')->item(0)->nodeValue; 

он не работал

+0

В первую очередь 'getElementsByService' не является функцией [класса DOMDocument'] (http://php.net/manual/en/class.domdocument.php), а во-вторых, ваш вопрос неясен относительно того, что вы 'пытаюсь получить. Вы пытаетесь получить «мыло: адресное местоположение» или что? –

+0

@JeffPuckettII Мне нужно создать мыльного клиента, чтобы получить купон из этого wsdl http://www.planetwin365.rs/Controls/CouponWS.asmx?wsdl –

ответ

0

для создания клиента мыло вы делаете это:

$client = new SoapClient("https://planetwin365.com/Controls/CouponWS.asmx?wsdl"); 

Вы не указали точно, какой метод вы хотите выполнить. Существует несколько методов, связанных с купонами, которые вы можете выбрать. Вы можете перечислить их сделать это:

var_dump($client->__getFunctions()); 

который возвращает число операций, которые можно выполнять:

GetSaldoResponse GetSaldo(GetSaldo $parameters) 
GetDisbilitazioneGirocontiResponse GetDisbilitazioneGiroconti(GetDisbilitazioneGiroconti $parameters) 
GetStatoCouponResponse GetStatoCoupon(GetStatoCoupon $parameters) 
CouponPromozioneOKResponse CouponPromozioneOK(CouponPromozioneOK $parameters) 
GetStatoCouponAsincronoResponse GetStatoCouponAsincrono(GetStatoCouponAsincrono $parameters) 
GetSaldoResponse GetSaldo(GetSaldo $parameters) 
GetDisbilitazioneGirocontiResponse GetDisbilitazioneGiroconti(GetDisbilitazioneGiroconti $parameters) 
GetStatoCouponResponse GetStatoCoupon(GetStatoCoupon $parameters) 
CouponPromozioneOKResponse CouponPromozioneOK(CouponPromozioneOK $parameters) 
GetStatoCouponAsincronoResponse GetStatoCouponAsincrono(GetStatoCouponAsincrono $parameters) 

Выберите тот, который вы хотите позвонить. Например, давайте посмотрим на GetStatoCoupon(). Мы видим, что этот метод принимает один параметр под названием $parameters и является структурой типа GetStatoCoupon. Метод возвращает GetStatoCouponResponse.

Как выглядит тип GetStatoCoupon? Для того, чтобы выяснить, сделать:

var_dump($client->__getTypes()); 

И мы можем видеть, что GetStatoCoupon выглядит следующим образом:

[4]=> 
string(40) "struct GetStatoCoupon { 
int IDCoupon; 
}" 

Теперь у нас есть достаточно информации, чтобы построить базовый вызов:

$client = new SoapClient("https://planetwin365.com/Controls/CouponWS.asmx?wsdl"); 
$parameters = new StdClass(); 
$parameters->IDCoupon = 1234; 
$response = $client->GetStatoCoupon($parameters); 

Мои результаты вызовов в ошибка, потому что я не знаю, какие значения могут идти в IDCoupon, но, надеюсь, это ответит на ваш вопрос о том, как создать SOAP-клиент для получения купонов.

-1

Я настоятельно советую вам использовать WSDL в PHP генератор чтобы получить клиента SDK/мыло простой в использовании из PackageGenerator