[英]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.