1
PHPで開発されたプロジェクトでWebサービスの機能を呼び出したいと思います。これは私のコードです:SOAP WebサービスとそのXMLでの作業方法
$wsdl="http://x.x.x.x:8090/charge/services/Amount?wsdl";
$client = new SoapClient($wsdl) or die("Error");
$chargeAmountArray = array('UserIdentifier' => $number ,
'data' => array(
'description' => array("Channel=test|".$Origin),
'currency' => NULL,
'code' => $code),
'refrence' => $refcode);
$header = new SoapHeader('servicekey', $servicekey);
$client->__setSoapHeaders($header);
$res = $client->__call('chargeAmount',$chargeAmountArray);
return $res->return;
私はtcpdumpのと私のXMLコードを見ていると、それはのようなものです:あなたがUserIdentifier
が渡され、refrence
パラメータがXMLに名前がありませんされていない見たよう
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.csapi.org/schema/parlayx/payment/amount_charging/v4_0/local" xmlns:ns2="servicekey">
<SOAP-ENV:Header>
<ns2:e0ce5ed56d7c4d60/>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:chargeAmount/>
<param1>
<item>
<key>description</key>
<value>yChannel=test|30733</value>
</item>
<item>
<key>currency</key>
<value/>
</item>
<item>
<key>code</key>
<value>MOBDY</value>
</item>
</param1>
<param2>1PN1mROoZop2hAy</param2>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
。
この文の意味を理解できませんでした:SoapHeaderクラスのコンストラクタシグネチャは、最初のパラメータが名前空間宣言であることを示しています。私は 'nusoap'を使っているので' SoapClient :: __ call() 'を使っています。また、 '$ res = $ client - > __ call( 'chargeAmount'、array( 'parameters' => $ chargeAmountArray));という方法で' try/catch'とコール関数を使用しました。 '致命的なエラー:Uncaught SoapFault例外:[soapenv:Server] unknown' – hodhod
コンストラクタは' new SoapHeader() 'を使うときに呼び出される関数です。あなたはそれを間違って呼んでいる。 'SoapClient__call()'は使わないでください。非推奨です。 – miken32