PHP SoapClient ответ на вызов недостающие части ответа - PullRequest
2 голосов
/ 28 марта 2011

У меня проблема со скриптом ниже. Он просто не хочет публиковать ответ.

Сценарий:

    <?php

    require_once('nusoap.php');
    $c = new soapclient('http://hidden.com/api/soap_affiliate.php?wsdl');

    $result = $c->__call('optionalInfo', array('client'=> 'hidden','add_code' => 'hidden','password'=> 'hidden' , 
'start_date' => '2011-03-15','end_date' => '2011-03-24' , 'program_id' => '000' , 'opt_info' => 'x' ));

    echo $result; 

    ?>

Возвращается следующее:

<?xml version="1.0" encoding="utf-8"?>
<item>
</item>

он должен вернуть некоторые данные от моих клиентов, хотя он даже не показывает пустых полей.

Как это должно выглядеть с некоторыми подробностями:

    <?xml version="1.0" encoding="utf-8"?>
<item> 
     <dailystats> 
         <date>2011-03-18</date> 
         <impressions>17</impressions> 
         <clicks>1</clicks> 
         <leads>1</leads> 
         <num_sales>0</num_sales> 
         <sales> 0.00</sales> 
         <sub_sales> 0.00</sub_sales>  
         <commission> 1.10</commission> 
         <click_thru_ratio>5.88%</click_thru_ratio> 
</dailystats> 
</item>

Я попробовал все, что смогу (насколько я знаю, мыло), но больше ничего не вернусь. Так может кто-нибудь помочь мне с этим сценарием?

Необходимый веб-сервис ниже,

- <message name="optionalInfoRequest">
  <part name="client" type="xsd:string" /> 
  <part name="add_code" type="xsd:string" /> 
  <part name="password" type="xsd:string" /> 
  <part name="start_date" type="xsd:string" /> 
  <part name="end_date" type="xsd:string" /> 
  <part name="program_id" type="xsd:int" /> 
  <part name="opt_info" type="xsd:string" /> 
  </message>
- <message name="optionalInfoResponse">
  <part name="return" type="xsd:string" /> 
  </message>

весь WSDL можно найти здесь Сервис WSDL

EDIT:

спасибо, wrikken, это подтолкнуло меня в правильном направлении. Я немного отредактировал скрипт: теперь есть тег «opt_info». Здесь я должен указать адреса электронной почты и дату, чтобы они тоже их возвращали. Кто-нибудь может мне помочь сделать это?

1 Ответ

0 голосов
/ 22 февраля 2012

Вам требуется использование nusoap?В PHP теперь есть своя собственная обработка SOAP, которую гораздо проще понять (по крайней мере, для меня, как для обычного программиста PHP, nusoap немного сбивает с толку).Если вы только начинаете изучать SOAP и у вас есть версия PHP, которая поддерживает его изначально, с --enable libxml (может потребоваться перекомпиляция с поддержкой мыла), возможно, будет хорошей идеей изучить метод PHP.* Вот пример клиентского скрипта, который отправляет запрос, и должен получить ответ, он также выводит ошибки в «var dump»:

        <?php
        try {
            $sClient = new SoapClient("http://URL-TO-WSDL");
            $response = $sClient->doFunctionName($REQUEST);
//doFunctionName should represent the name of the "message" element
//and $REQUEST is what you are sending to the server for that same message element
            print_r($response);
        } catch(SoapFault $error) {
            var_dump($error);
        } ?>

Надеюсь, это полезно.Кстати: вы можете проверить, есть ли у вашего php поддержка soap, используя phpinfo (); найдите «soap»: «enable-soap

».
...