ホームページ >バックエンド開発 >PHPチュートリアル >PHP は WEBSERVICE インターフェイスを呼び出し、パラメータを渡します
皆さん、こんにちは。websevice を呼び出すと、ポートは正常に接続できましたが、エラー :soap:Client: リクエスト要素が認識されませんでした。これを解決するにはどうすればよいですか? うわー
コードが間違っていますか? ???
WSDL を見ずに DeductionIntegral のパラメータがどうあるべきかを決定することはできません
ただし、従わなければならない原則があります:
直接メソッド名へのアクセスが次のような場合 $client->DeductionIntegral($param)
次にcall メソッドを使用します。 アクセスは次のようにする必要があります。 $client->call('DeductionIntegral',array($param))
つまり、call_user_func_array 関数が内部で呼び出されるため、パラメーターは配列に配置する必要があります
ただし、従わなければならない原則があります:
直接メソッド名へのアクセスが次のような場合 $client->DeductionIntegral($param)
次に呼び出しメソッドへのアクセスは次のようにする必要があります $client->call('DeductionIntegral ',array($param))
つまり、call_user_func_array 関数が内部的に呼び出されるため、パラメーターは配列に配置される必要があります http://hr .pim-cs.com/WebService/IntegralInterface.asmx?wsdl、$client->call('DeductionIntegral',array($obj)) を使用しても同じエラー メッセージが表示されます。理解できません。
ただし、従わなければならない原則があります:
ダイレクト メソッド名アクセスが次のような場合 $client->DeductionIntegral($param)
次に call を使用します メソッドへのアクセスは次のようにする必要があります $client->call('DeductionIntegral',array($param))
つまり、 call_user_func_array 関数が内部で呼び出されるため、パラメータは配列に配置する必要があります
これは次のようになりますパラメータが正しく渡されていないことを確認したいのですが、このように呼んでいますか?
$json='{"リクエスト":{"ヘッダー":{"IFCode":"インターフェース識別","CorpCode":"顧客コード","SysCode":"KongRun_BasicCode","アカウント":"アカウント", "Pwd":"パスワード"},"本文":{"統合":"10","MobilePhone":"携帯電話番号"}}}' $obj=json_decode($json); ; //$param=array('MobilePhone'=>$MobilePhone,'Integral'=>$Integral); $result=$client->call('DeductionIntegral',array('parameters'=>$) obj ));
[0] => DeductionIntegralResponse DeductionIntegral(DeductionIntegral $parameters)
[1] => MemberAddIntegralResponse MemberAddIntegral(MemberAddIntegral $parameters)
DeductionIntegral メソッドには次のような DeductionIntegral 型のデータが必要ですパラメーター
DeductionIntegral 型は次のように記述されます:
struct DeductionIntegral {
string Json;
したがって、次のように呼び出す必要があります
$param = array('Json' => $json);
$client- >call ('DeductionIntegral',array($param));
$client->DeductionIntegral($param);