ここで質問するのは初めてです:)
だから、ここにあります:
私は Web サービスの WSDL と SOAP は初めてですが、PHP にはかなりの経験があります。WebService に対して Soap リクエストを実行しようとしています。URL は次のとおりです。
http://webservice.monytor.com.br/WSGeope/ImpExpGEOPE.asmx?WSDL
「AVL」などのパラメーターを必要としないリクエストを実行しようとすると、問題なく結果が得られます。
<?php
$options = array('soap_version' => SOAP_1_2, 'trace' => true, 'exceptions' => true, 'cache_wsdl' => WSDL_CACHE_NONE);
$monytor = new SoapClient("http://webservice.monytor.com.br/WSGeope/ImpExpGEOPE.asmx?WSDL", $options);
$result = $monytor->AVL();
?>
生成するもの:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://webservices.monytor.com.br/WSGeope/">
<env:Body>
<ns1:AVL/>
</env:Body>
</env:Envelope>
私を返します:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AVLResponse xmlns="http://webservices.monytor.com.br/WSGeope/">
<AVLResult>
<anyType xsi:type="xsd:string">AUTOTRAC</anyType>
<anyType xsi:type="xsd:string">CHECKROTA</anyType>
<anyType xsi:type="xsd:string">CONTROLLOC</anyType>
... and so on.
これは正確に期待される結果です。
しかし、いくつかのパラメーターを使用してそれを実行しようとすると:
<?php
$options = array('soap_version' => SOAP_1_2, 'trace' => true, 'exceptions' => true, 'cache_wsdl' => WSDL_CACHE_NONE);
$monytor = new SoapClient("http://webservice.monytor.com.br/WSGeope/ImpExpGEOPE.asmx?WSDL", $options);
$result = $monytor->VerifyAccess(array('Empresa' => 1, 'Usuario' => 1, 'Senha' => 'test'));
?>
生成するもの:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://webservices.monytor.com.br/WSGeope/">
<env:Body>
<ns1:VerifyAccess>
<ns1:Empresa>1</ns1:Empresa>
<ns1:Usuario>1</ns1:Usuario>
<ns1:Senha>test</ns1:Senha>
</ns1:VerifyAccess>
</env:Body>
</env:Envelope>
私を返します:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<VerifyAccessResponse xmlns="http://webservices.monytor.com.br/WSGeope/">
<VerifyAccessResult>false</VerifyAccessResult>
</VerifyAccessResponse>
</soap:Body>
</soap:Envelope>
(「Empresa」は「会社」、「Usuario」は「ユーザー」、「Senha」は「パスワード」を意味します。もちろん、ここに投稿したものは架空のものですが、実際のものを使用してテストしています)
Web サービスのサポートによると、パラメーターは正しいですが、私の要求 XML は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<VerifyAccess xmlns="http://webservices.monytor.com.br/WSGeope/">
<Empresa>1</Empresa>
<Usuario>1</Usuario>
<Senha>test</Senha>
</VerifyAccess>
</soap12:Body>
いずれの場合もエラーは返されません (「try ... catch」を試しました) ので、リクエストは OK だと思います。
私の質問は次のとおりです。これは本当に「偽」の戻りの原因でしょうか、それとも資格情報が間違っていますか?
ブラウザでアクセスする場合は、他の方法が説明されています: http://webservice.monytor.com.br/WSGeope/ImpExpGEOPE.asmx
前もって感謝します。
私の悪い英語でごめんなさい、私はブラジル人です。