SOAP PHPでポートを選択するにはどうすればいいですか?私はTravelPortをGDSとして旅行予約ウェブサイトを開発しています。 私はWSDLを見始めました。私はそれらを使用してPHPでサーバーを呼び出そうとしています。私はそれをすることができません。私はサーバが動作していることを知っています。なぜなら、リクエストを作成してcURLを介して送信すると、私は期待しているレスポンスを得ますが、自分自身を使用して適合させることになります(sample code) )、 俺はどこにもいかねえ。PHP WSDLでポート名を指定する方法
SOAP PHPモジュールが生成するリクエストを見ると、間違った機能を使用しているという問題があると思います。私は全体のWSDLを公開することができないと思いますが、ここの抜粋です:
<!-- Service -->
<service name="AirService">
<port name="AirRepriceSearchPort"
binding="tns:AirRepriceSearchBinding">
<soap:address
location="http://localhost:8080/kestrel/AirService" />
</port>
<port name="AirScheduleSearchPort"
binding="tns:AirScheduleSearchBinding">
<soap:address
location="http://localhost:8080/kestrel/AirService" />
</port>
<port name="AirLowFareSearchPort"
binding="tns:AirLowFareSearchBinding">
<soap:address
location="http://localhost:8080/kestrel/AirService" />
</port>
はどうやらスクリプトは常にAirRepriceモジュールの代わりに、LowFareSearchモジュールに基づいて要求を生成しますが。実際、WSDLを編集して最初の要素として "AirLowFareSearchPort"を置くと、リクエストが機能します。
私は次のことを試してみた:
は
$client->AirLowFareSearchPort($data)
を使用して実行するアクションを指定し、それが有効な関数ではありません。私は
$client->__getfunctions()
を使用して、すべての機能を得た:「サービス」のみ「機能」があるように見えます[0]=> string(48) "AirRepriceRsp service(AirRepriceReq $parameters)" [1]=> string(56) "ScheduleSearchRsp service(ScheduleSearchReq $parameters)" [2]=> string(54) "LowFareSearchRsp service(LowFareSearchReq $parameters)" [3]=> string(66) "LowFareSearchAsynchRsp service(LowFareSearchAsynchReq $parameters)"
しかし、私はどこに得ることはありません:
括弧内のものを入れます。
私は他のアイデアはありません。うまくいけばあなたは助けることができるでしょう!
UPDATE:
私はそれが問題を公開this articleを見つけました。しかし、PHP Webサービスと呼ばれる独自のモジュールを指しています。私はSOAPで同じことをする必要があります。私は本当にあなたの助けが必要です。