繁体   English   中英

PHP XML Soap请求

[英]PHP XML Soap request

如何在php中进行以下肥皂请求,

<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

我知道,我以正确的方式发送了参数,也许我知道如何更正它。

我从未使用过该肥皂客户端,但是我希望这样:

<?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 这些事情应该在那里解释...

使用https://incometaxindiaefiling.gov.in/e-FilingWS/ditws/getTaxCredMismatchRequest.wsdl中的WSDL,您可以从wsdltophp.com生成相应的包,以确保如何在PHP中将请求作为每个元素来结构化将是一个带有setters / getters的PHP对象。 它使用本机PHP SoapClient类,因此如果您熟悉PHP,则可以轻松,快速地了解向谁发送这些请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM