2016-09-20 45 views
1

我试图用这个WebService的实例PHP SOAP错误:未将对象引用设置为

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <ABRSearchByName xmlns="http://abr.business.gov.au/ABRXMLSearch/"> 
     <externalNameSearch> 
     <authenticationGUID>string</authenticationGUID> 
     <name>string</name> 
     <filters> 
      <nameType> 
      <tradingName>string</tradingName> 
      <legalName>string</legalName> 
      </nameType> 
      <postcode>string</postcode> 
      <stateCode> 
      <QLD>string</QLD> 
      <NT>string</NT> 
      <SA>string</SA> 
      <WA>string</WA> 
      <VIC>string</VIC> 
      <ACT>string</ACT> 
      <TAS>string</TAS> 
      <NSW>string</NSW> 
      </stateCode> 
     </filters> 
     </externalNameSearch> 
     <authenticationGuid>string</authenticationGuid> 
    </ABRSearchByName> 
    </soap:Body> 
</soap:Envelope> 
下面

是我的类定义

class abnlookup extends SoapClient{ 

    private $guid = "00000000"; 

    public function __construct($guid) 
    { 
     $this->guid = $guid; 
     $params = array(
      'soap_version' => SOAP_1_1, 
      'exceptions' => true, 
      'trace' => 1, 
      'cache_wsdl' => WSDL_CACHE_NONE 
     ); 

     parent::__construct('http://abr.business.gov.au/abrxmlsearch/ABRXMLSearch.asmx?WSDL', $params); 
    } 

     public function searchByName($name){ 
      $params = new stdClass(); 
      $params->name= $name; 
      $params->nameType= 'Y' ; 
      $params->postcode= 'Y'; 
      $params->stateCode= 'N' ;   
    $params->authenticationGuid   = $this->guid; 
       return $this->ABRSearchByName($params); 
} 

呼叫,创建类对象 $ abnlookup = new abnlookup($ abn_guid); $ result = $ abnlookup-> searchByName($ name);

并收到此消息 服务器无法处理请求。 --->对象引用未设置为对象的实例。第二个

回答

0

传递给ABRSearchByName的$ params结构不正确。根据WSDL这种结构有两个字段(如图__getTypes()):

struct ABRSearchByName { 
ExternalRequestNameSearch externalNameSearch; 
string authenticationGuid; 
} 

与这两个领域,问题应该可以解决创建$ PARAMS。

相关问题