Установить SOAP пространство имен заголовка в PHP - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь создать запрос SOAP следующим образом:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header>
    <RequestHeader xmlns="http://im.yahooapis.jp/V201911/Campaign" xmlns:ns2="http://im.yahooapis.jp/V201911">
      <ns2:license>1111111111</ns2:license>
      <ns2:apiAccountId>1111111111</ns2:apiAccountId>
      <ns2:apiAccountPassword>1111111111</ns2:apiAccountPassword>
    </RequestHeader>
  </SOAP-ENV:Header>
...

Проблема в том, что когда я устанавливаю RequestHeader, пространство имен появляется в Envelope.

* 1007. * Это мой код:
        $client = new SoapClient('https://sandbox.im.yahooapis.jp/services/V201911/CampaignService?wsdl', ['trace' => true]);

        $header = new SoapHeader('http://im.yahooapis.jp/V201911/Campaign', 'RequestHeader', [
            'license' => '1111111111',
            'apiAccountId' => '1111111111',
            'apiAccountPassword' => '1111111111'
        ]);


        $client->__setSoapHeaders($header);
        $client->__soapCall('mutate', []);
        $request = $client->__getLastRequest();
        dd($request);

И вот что я получаю в результате:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://im.yahooapis.jp/V201911/Campaign" xmlns:ns2="http://im.yahooapis.jp/V201911">
    <SOAP-ENV:Header>
        <ns1:RequestHeader>
            <ns2:license>1111111111</ns2:license>
            <ns2:apiAccountId>1111111111</ns2:apiAccountId>
            <ns2:apiAccountPassword>1111111111</ns2:apiAccountPassword>
        </ns1:RequestHeader>
...

как я могу установить пространство имен внутри RequestHeader?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...