2015-09-26 3 views
0

Как я могу сделать ниже запроса мыла в PHP,PHP запрос XML Soap

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:v="http://incometaxindiaefiling.gov.in/ditws/TaxCredMismatch/v_1_0"> 
    <soapenv:Header/> 
     <soapenv:Body> 
     <v:getTaxCredMismatchRequest> 
     <LoginInfo> 
      <userName>XXXXXXXXXX</userName> 
      <password>XXXXXXXXXX</password> 
     </LoginInfo> 
     <UserInput> 
      <panNo>XXXXXXXXXX</panNo> 
      <asseessmentyear>XXXX-XX</asseessmentyear> 
     </UserInput> 
    </v:getTaxCredMismatchRequest> 
</soapenv:Body> 
</soapenv:Envelope> 

Я попытался ниже код,

<?php 
    $url = "https://incometaxindiaefiling.gov.in/e-FilingWS/ditws/getTaxCredMismatchRequest.wsdl"; 
    try {   
     $options = array( 
       'soap_version'=>SOAP_1_1, 
       'exceptions'=>true, 
       'trace'=>1, 
       'cache_wsdl'=>WSDL_CACHE_NONE 
      );   
     $client = new SoapClient($url,$options); 
     $requestParams = array(
      'userName' => 'AJAPA5855E', 
      'password' => 'pass123', 
      'panNo' => 'AJAPA5855E', 
      'asseessmentyear' => '2014-15' 
     );   
     $response = $client->__soapCall("getTaxCredMisMatch", array($requestParams)); 
     var_dump($response); 
    } catch (Exception $e) { 
     echo $e->getMessage(); 
    } 
?> 

но получить ответ как

SOAP-ERROR: Encoding: object has no 'LoginInfo' property 

Я знаю, , Я правильно отправляю параметр, могу ли я узнать, как его исправить.

ответ

1

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

<?php 
    $url = "https://incometaxindiaefiling.gov.in/e-FilingWS/ditws/getTaxCredMismatchRequest.wsdl"; 
    try {   
     $options = array( 
       'soap_version'=>SOAP_1_1, 
       'exceptions'=>true, 
       'trace'=>1, 
       'cache_wsdl'=>WSDL_CACHE_NONE 
      );   
     $client = new SoapClient($url,$options); 
     $requestParams = array(
      'LoginInfo' => array (
       'userName' => 'AJAPA5855E', 
       'password' => 'pass123', 
      ), 
      'UserInput' => array (
       'panNo' => 'AJAPA5855E', 
       'asseessmentyear' => '2014-15' 
      ) 
     );   
     $response = $client->__soapCall("getTaxCredMisMatch", array($requestParams)); 
     var_dump($response); 
    } catch (Exception $e) { 
     echo $e->getMessage(); 
    } 
?> 

Однако, как было сказано выше, это просто дикая догадка. Разумеется, было бы целесообразно взглянуть на документацию этого расширения: http://php.net/manual/en/class.soapclient.php. Такие вещи должны быть объяснены там ...

+0

да, это работает. Благодарю. –

0

Используя WSDL от https://incometaxindiaefiling.gov.in/e-FilingWS/ditws/getTaxCredMismatchRequest.wsdl, вы можете сгенерировать соответствующий пакет с wsdltophp.com, чтобы быть уверенным в том, как структурировать ваш запрос в PHP, поскольку каждый элемент будет объектом PHP с Сеттера/добытчики. Он использует собственный класс PHP SoapClient, поэтому вы легко и быстро поймете, кому отправлять эти запросы, если вы знакомы с PHP