ソフトウェアをSecureNetゲートウェイと統合しようとしています。彼らはSOAPベースのAPIを持っています。
私が抱えている問題は、WSDLファイルが実際にはPHPで機能しないことです。wsdl:import
具体的には、WSDLファイルはステートメントを使用して複数のファイルに分割され、インポート場所はhttp
です。テストサーバーhttp
とhttps
ポートが開いているため、PHPはWSDLファイルを読み取ることができます。本番サーバーでhttps
は開いているだけですが、ロケーションブロックはまだ参照http
しているため、PHPはタイムアウトになります。もしそうなら、それはhttps
うまくいくでしょう。
彼らの推奨は、テストサーバーからWSDLファイルをプルすることでしたが、場所をオーバーライドします。テストサーバーは常に稼働している必要があると言われていますが、トランザクションが機能するために2つのシステムに依存することに抵抗があります。
もう1つの方法は、XML post APIを使用することです...しかし、それに関する問題は、すべてのフィールド(必要かどうか)を正しい順序で指定する必要があることです。最悪の部分は、このAPIのエラーメッセージが単純Unknown Error.
であるため、私が何を見逃しているのかを理解することはほぼ不可能です。
3番目のオプションが必要です。WSDLファイルをロードできる場合(本番ではなくテストで可能)、Soapはうまく機能します。彼らはWCFを使用していると思います。これは私が信じている.NETのものです。「?simpleWSDL」と「?wsdl」のオプションがあるはずですが、WCFのバージョンにはありません。
これが彼らのWSDLファイル(テストサーバー)です:https ://certify.securenet.com/API/Gateway.svc?wsdl
編集:
再現可能なコードは次のとおりです。
$client = new SoapClient("https://gateway.securenet.com/API/Gateway.svc?wsdl");
// Hangs and throws exception in construct