申し訳ありませんが、非常に簡単なことかもしれませんが、私はそれを何日も機能させることができません!
これは私のwsdlの一部です:
<xsd:complexType name="PERSON">
<xsd:sequence>
<xsd:element name="ExterneID" minOccurs="0" type="xsd:int" />
<xsd:element name="Email" type="xsd:string" />
...
</xsd:sequence>
</xsd:complexType>
<message name="insertAdresse">
<part name="BmLogin" type="xsd:string" />
<part name="TS" type="xsd:int" />
<part name="UT" type="xsd:string" />
<part name="Person" type="typens:PERSON"/>
</message>
これをsoapサーバーに渡すにはどうすればよいですか?そして、どうすればそこでパラメータに対処できますか?
私はたくさんのバージョンを試しましたが、何も役に立ちませんでした!例:
class c_adresse
{
public $ExterneID;
public $Email;
public function __construct($ExterneID,$Email)
{
$this->ExterneID = $ExterneID;
$this->Email = $Email;
}
}
$no1 = array();
$no1[] = new c_adresse(33,"peter@xxxxxx.at");
したがって、$no1は次のようになります。
array(1) {
[0]=>
object(c_adresse)#2 (2) {
["ExterneID"]=>
int(33)
["Email"]=>
string(15) "peter@xxxxxx.at"
}
}
電話:
$response = $soap_client->insertAdresse($login,$ts,$token,$no1);
エラーメッセージ:
PHP Fatal error: SOAP-ERROR: Encoding: object hasn't 'Email' property in /home/peter/Desktop/soap.php on line 41
PHP Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'Email' property in /home/peter/Desktop/soap.php:41
石鹸サーバーに渡すオブジェクト/配列(?)を設計するにはどうすればよいですか?
サーバーで$datenに対応できません。時々、パラメーターの順序とスタイルを試してみると、「メッセージ」セクションでstring、int、および配列(complexType [PERSON])を混合しない場合にのみ、何らかの方法で機能するようになります。しかし、$ datenに対処できないか、$BmLoginが空であるなど...
function insertAdresse($BmLogin,$TS,$UT,$daten)
さて、私は解決策を見つけました!
私はこれを変更しました:
<xsd:element name="PERSON" type="PersonType"/>
<xsd:complexType name="PersonType">
その後、これ...
$response = $soap_client->insertAdresse($login,$ts,$token,array("ExterneID"=>22,"Email"=>"peter@xxxxxx.at"));
正常に動作します!