简体   繁体   中英

Get element from WSDL in PHP using Soap

i need to make a soap php to get coupons from https://planetwin365.com/Controls/CouponWS.asmx?wsdl

The WSDL in question is Planetwin365 . The snippet in question looks something like this:

    <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>

I'm currently doing this:

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

he didn't work

To create a soap client you do this:

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

You didn't say exactly which method you wanted to execute. There is a number of coupon related methods you can choose. You can list them out doing this:

var_dump($client->__getFunctions());

Which returns a number of operations you can perform:

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)

Choose the one you want to call. For example, let's take a look at GetStatoCoupon() . We can see that this method takes one parameter called $parameters and it is a GetStatoCoupon type structure. The method returns a GetStatoCouponResponse .

What does the GetStatoCoupon type look like? To find out do:

var_dump($client->__getTypes());

And we can see that GetStatoCoupon looks like:

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

We now have enough information to construct a basic call:

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

My call results in an error because I don't know what values can go into IDCoupon , but hopefully this answers your question on how to create a SOAP client to get coupons.

我强烈建议您使用WSDL到php生成器,以从PackageGenerator获得易于使用的SDK / soap客户端

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM