如下程序执行:
$client = new SoapClient('http://10.132.97.29:9091/ma-online/OnlineService?wsdl');
$v = array('requestTime'=> time(), 'sourceId'=>'0609', 'version'=>'10');//头的参数也是放在数组中
$headers = new SoapHeader('http://online.service.api.ws.ma.sdo.com/', 'IMaOnlineWS',$v);//第一个参数是命名空间,第二个参数是SoapHeader头的类名,第三个是SoapHeader参数的数组可以写成array('sourceId'=>$sourceId,。)
$client->__setSoapHeaders(array($headers));//添加soapheader
$params=array( 'MerchantId' => '245888','MemberId' => '' );
$we = $client->__call('getMerchantInfo',  $params  );
dump($we);报错信息如下:SoapFault exception: [soap:Server] Fault occurred while processing. in D:\project\test.php:99 Stack trace: #0 D:\project\test.php(99): SoapClient->__call('getMerchantInfo', Array) #1使用了很多方法都报这个错误调用下面的是正常的,可以返回结果:
$c = new SoapClient( 'http://www.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl');
$params=array( 'theCityCode' => 2210 );
$we = $c->__call('getWeather', array( $params ) );
var_dump( $we );求高手协助 

解决方案 »

  1.   

      <?xml version="1.0" encoding="UTF-8" ?> 
    - <wsdl:definitions name="MaOnlineWSService" targetNamespace="http://impl.ws.ma.sdo.com/" xmlns:ns1="http://online.service.api.ws.ma.sdo.com/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.ws.ma.sdo.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <wsdl:import location="http://10.132.97.29:9091/ma-online/OnlineService?wsdl=IMaOnlineWS.wsdl" namespace="http://online.service.api.ws.ma.sdo.com/" /> 
    - <wsdl:binding name="MaOnlineWSServiceSoapBinding" type="ns1:IMaOnlineWS">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
    - <wsdl:operation name="checkPayPwd">
      <soap:operation soapAction="" style="document" /> 
    - <wsdl:input name="checkPayPwd">
      <soap:body use="literal" /> 
      </wsdl:input>
    - <wsdl:output name="checkPayPwdResponse">
      <soap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
    - <wsdl:operation name="getMemberIntegratedInfo">
      <soap:operation soapAction="" style="document" /> 
    - <wsdl:input name="getMemberIntegratedInfo">
      <soap:body use="literal" /> 
      </wsdl:input>
    - <wsdl:output name="getMemberIntegratedInfoResponse">
      <soap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
    - <wsdl:operation name="getMerchantInfo">
      <soap:operation soapAction="" style="document" /> 
    - <wsdl:input name="getMerchantInfo">
      <soap:body use="literal" /> 
      </wsdl:input>
    - <wsdl:output name="getMerchantInfoResponse">
      <soap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
    - <wsdl:operation name="getAccount">
      <soap:operation soapAction="" style="document" /> 
    - <wsdl:input name="getAccount">
      <soap:body use="literal" /> 
      </wsdl:input>
    - <wsdl:output name="getAccountResponse">
      <soap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
    - <wsdl:operation name="getOperatorIntegratedInfo">
      <soap:operation soapAction="" style="document" /> 
    - <wsdl:input name="getOperatorIntegratedInfo">
      <soap:body use="literal" /> 
      </wsdl:input>
    - <wsdl:output name="getOperatorIntegratedInfoResponse">
      <soap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="MaOnlineWSService">
    - <wsdl:port binding="tns:MaOnlineWSServiceSoapBinding" name="MaOnlineWSPort">
      <soap:address location="http://10.132.97.29:9091/ma-online/OnlineService" /> 
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
      

  2.   

      <?xml version="1.0" encoding="UTF-8" ?> 
    - <wsdl:definitions name="IMaOnlineWS" targetNamespace="http://online.service.api.ws.ma.sdo.com/" xmlns:ns1="http://online.service.api.ws.ma.sdo.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <wsdl:types>
    - <xs:schema targetNamespace="http://response.ws.ma.sdo.com" version="1.0" xmlns:ns1="http://online.service.api.ws.ma.sdo.com/" xmlns:tns="http://response.ws.ma.sdo.com" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:import namespace="http://online.service.api.ws.ma.sdo.com/" /> 
    - <xs:complexType name="checkPayPwdResponse">
    - <xs:complexContent>
    - <xs:extension base="tns:baseResponse">
      <xs:sequence /> 
      </xs:extension>
      </xs:complexContent>
      </xs:complexType>
    - <xs:complexType name="baseResponse">
    - <xs:sequence>
      <xs:element minOccurs="0" name="header" type="ns1:responseHeader" /> 
      </xs:sequence>
      </xs:complexType>
    - <xs:complexType name="getMerchantInfoResponse">
    - <xs:complexContent>
    - <xs:extension base="tns:baseResponse">
    - <xs:sequence>
    - <xs:element name="merchants" nillable="true">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="merchants" nillable="true" type="ns1:merchantInfo" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      </xs:sequence>
      </xs:extension>
      </xs:complexContent>
      </xs:complexType>
      </xs:schema>
    - <xs:schema elementFormDefault="unqualified" targetNamespace="http://online.service.api.ws.ma.sdo.com/" version="1.0" xmlns:ns1="http://response.ws.ma.sdo.com" xmlns:tns="http://online.service.api.ws.ma.sdo.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:import namespace="http://response.ws.ma.sdo.com" /> 
      <xs:element name="getMerchantInfo" type="tns:getMerchantInfo" /> 
      <xs:element name="getMerchantInfoResponse" type="tns:getMerchantInfoResponse" /> 
    - <xs:complexType name="getMerchantInfo">
    - <xs:sequence>
      <xs:element minOccurs="0" name="arg0" type="tns:getMerchantInfoRequest" /> 
      </xs:sequence>
      </xs:complexType>
    - <xs:complexType name="getMerchantInfoRequest">
    - <xs:complexContent>
    - <xs:extension base="tns:baseRequest">
    - <xs:sequence>
      <xs:element minOccurs="0" name="merchantId" type="xs:string" /> 
      <xs:element minOccurs="0" name="memberId" type="xs:string" /> 
      </xs:sequence>
      </xs:extension>
      </xs:complexContent>
      </xs:complexType>
    - <xs:complexType name="getMerchantInfoResponse">
    - <xs:sequence>
      <xs:element minOccurs="0" name="return" type="ns1:getMerchantInfoResponse" /> 
      </xs:sequence>
      </xs:complexType>
    - <xs:complexType name="merchantInfo">
    - <xs:sequence>
      <xs:element minOccurs="0" name="memberId" type="xs:string" /> 
      <xs:element minOccurs="0" name="merchantId" type="xs:string" /> 
      <xs:element minOccurs="0" name="merchantName" type="xs:string" /> 
      <xs:element maxOccurs="unbounded" minOccurs="0" name="merchantProducts" nillable="true" type="tns:merchantProductInfo" /> 
      <xs:element minOccurs="0" name="merchantStatus" type="xs:long" /> 
      <xs:element minOccurs="0" name="merchantType" type="xs:long" /> 
      <xs:element minOccurs="0" name="ptid" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:schema>
      </wsdl:types>
    - <wsdl:message name="getMerchantInfoResponse">
      <wsdl:part element="ns1:getMerchantInfoResponse" name="parameters" /> 
      </wsdl:message>
    - <wsdl:message name="getMerchantInfo">
      <wsdl:part element="ns1:getMerchantInfo" name="parameters" /> 
      </wsdl:message>
    - <wsdl:portType name="IMaOnlineWS">
    - <wsdl:operation name="getMerchantInfo">
      <wsdl:input message="ns1:getMerchantInfo" name="getMerchantInfo" /> 
      <wsdl:output message="ns1:getMerchantInfoResponse" name="getMerchantInfoResponse" /> 
      </wsdl:operation>
      </wsdl:portType>
      </wsdl:definitions>
      

  3.   

    一个是http://10.132.97.29:9091/ma-online/OnlineService?wsdl
    一个是http://10.132.97.29:9091/ma-online/OnlineService?wsdl=IMaOnlineWS.wsdl
      

  4.   

    我是没从你的wsdl中找到,getMerchantInfo方法的参数列表…… 你确定有 ?
      

  5.   


    报错信息如下:SoapFault exception: [soap:Server] Fault occurred while processing. in D:\project\test.php:99 Stack trace: #0 D:\project\test.php(99): SoapClient->__call('getMerchantInfo', Array) #1
    先查一下test.php第99行出什么错,建议xdebug调试看一下