Аутентификация заголовка мыла PHP API

У меня есть небольшая проблема, которую я не могу решить. Я пытаюсь подключиться к SOAP API (criteo), который прекрасно работает с SoapUI. Когда я пытаюсь воспроизвести логику, например, в php, я получаю аутентификацию. ошибки. Я уверен, что информация заголовка не передана правильно (я уже пробовал несколько решений, которые я нашел здесь безрезультатно).

Это запрос в SoapUI:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v20="https://advertising.criteo.com/API/v201010">
   <soapenv:Header>
      <v20:apiHeader>
         <v20:authToken>12345</v20:authToken>
         <v20:appToken>123456</v20:appToken>
      </v20:apiHeader>
   </soapenv:Header>
   <soapenv:Body>
      <v20:getReportDownloadUrl>
         <v20:jobID>12345</v20:jobID>
      </v20:getReportDownloadUrl>
   </soapenv:Body>
</soapenv:Envelope>

В php я создал такой заголовок:

/*
 * wsdl: https://advertising.criteo.com/API/v201010/AdvertiserService.asmx?WSDL
 */
    $authTokens = new stdClass();
    $authTokens->authToken = 12345;
    $authTokens->appToken = '123456';

    $header =  new SoapHeader('https://advertising.criteo.com/API/v201010/AdvertiserService.asmx', "apiHeader", $authTokens, true);
    $client->__setSoapHeaders(array($header));

    print_r($client->getAccount());

Когда я запускаю скрипт, я получаю сообщение об ошибке:

Uncaught SoapFault exception: [soap:Receiver] Server was unable to process request. ---> Unable to cast object of type 'System.Web.Services.Protocols.SoapUnknownHeader' to type 'Criteo.WebService.DataModel.apiHeader'

Может кто-нибудь дать мне подсказку? Спасибо за помощь.

1 ответ

Получил ту же проблему. Измените значение пространства имен на https://advertising.criteo.com/API/v201010 с https://advertising.criteo.com/API/v201010/AdvertiserService.asmx

Другие вопросы по тегам