1

HTTPS Web サービスと .PEM クライアント証明書を使用して PHP SOAP を作成する方法

私がそれをしたとき、私は次のエラーを受け取りました:

array(2) { [0]=> string(38) "testeResponse teste(teste $parameters)" [1]=> string(38) "testeResponse teste(teste $parameters)" }

Fatal error: Uncaught SoapFault exception: [wsse:InvalidSecurity] SOAP header missing in D:\Inetpub\wwwroot\SOAP\index.php:47 スタック トレース: #0 [内部関数]: SoapClient->__call('teste', Array ) #1 D:\Inetpub\wwwroot\SOAP\index.php(47): SoapClient->teste(Array) #2 {main} が D:\Inetpub\wwwroot\SOAP\index.php 行 47 でスローされる

コード:

$client = new SoapClient($wsdl, array(
    'local_cert'  => $localCert, 
     'passphrase' => $passphrase, 
     'style'      => SOAP_DOCUMENT, 
     'use'        => SOAP_LITERAL, 
     'exceptions' => true, 
     'trace'      => true)
);
$something = $client->teste(array());
echo $something->testeResult;
4

1 に答える 1

1

警告は、PEM 証明書または SSL に関するものではありません。それは単純です:

SOAP ヘッダーがありません

SOAPHeaderPHPマニュアルにあります。PHPのマニュアルやこちらのサイトにも使用例やユーザー投稿のメモがあります。例えば:

$auth = array(
    'UserName' => 'USERNAME',
    'Password' => 'PASSWORD',
    'SystemId' => array('_'=> 'DATA', 'Param' => 'PARAM'),
);
$header = new SoapHeader('NAMESPACE','Auth',$auth,false);
$client->__setSoapHeaders($header);

問題が発生した場合はお知らせください。

于 2012-12-19T21:24:41.037 に答える