0

私はこの SOAP の概念全体に完全に慣れていないので、エラーが発生したときに何を探すべきかわかりません。基本的に、私は別の会社からいくつかのデータを取得しようとしています。その会社は私にデジタル証明書といくつかの xsd および wsdl ファイルを提供し、サーバーの IP をホワイトリストに登録できるように要求しました。私が言ったように、私は彼らが私に与えたファイルをどうするか分からなかったので、私はそれらを私のサーバーにアップロードし、グーグルを始めました.次のコードを一緒に貼り付けました.検出):

$protected_url = "http://www.myurl.com/WSDLFILE.wsdl";
$my_cert_file = "http://www.myurl.com/CERTFILE.pem";
$client = new SoapClient($protected_url, array('local_cert'=> $my_cert_file,'trace'=>1));

$params->Affiliate->AffiliateID = 555;
$params->Address->AddressLine = "123 Main Street";
$params->Contact = 'No';

$result = $client->QueryAddress($params);

そして、次のエラーが表示されます

[10-Apr-2013 18:59:46 America/New_York] PHP Fatal error:  Uncaught SoapFault exception: [HTTP] Forbidden in /home/mysite/index.php:15
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://secure....', 'http://www....', 1, 0)
#1 /home/mysite/index.php(15): SoapClient->__call('QueryAddress', Array)
#2 /home/mysite/index.php(15): SoapClient->QueryAddress(Object(stdClass))
#3 {main}
  thrown in /home/mysite/index.php on line 15

何を探しているのかわからないので、助けを探すのはちょっと難しいので、どんなガイダンスもありがたいです

編集:cURLを使用して「CURLOPT_SSLCERT」オプションを設定することで、実際に成功した応答を得ることができたことも追加する必要がありますが、SOAPを使用する必要があります

4

1 に答える 1

0

(コメントで回答。コミュニティ wiki の回答に変換。回答のない質問を参照してください。ただし、コメントで問題は解決されています (またはチャットで拡張) )

OP は次のように書いています。

解決済み: 私の問題は、.wsdlファイルの使用方法にありました。彼らが提供したものをアップロードしてから、SoapClient を作成するときにそれを使用する必要があると思いましたが、そうではありませんでした。私が必要としていたのは、彼らの wsdl URL を参照することでした。https:......asmx?WSDL

于 2015-01-31T10:35:32.560 に答える