簡體   English   中英

使用Soap從PHP中的WSDL獲取元素

[英]Get element from WSDL in PHP using Soap

我需要制作一個肥皂PHP來從https://planetwin365.com/Controls/CouponWS.asmx?wsdl獲取優惠券

有問題的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;

他沒工作

要創建肥皂客戶端,請執行以下操作:

$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客戶端以獲取優惠券的問題。

我強烈建議您使用WSDL到php生成器,以從PackageGenerator獲得易於使用的SDK / soap客戶端

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM