2016-09-23 15 views
1

私は石鹸のWebサービスにCreateOrderの方法で注文を作成しよう:この単純なコードでSoapClientエラーを解決します。「オブジェクト参照がオブジェクトのインスタンスに設定されていません。

http://80.72.84.109/MW/services/bilkiservice.asmx?wsdl

$soap = new SoapClient(MW_SOAP_URL, array(
     "trace" => 1, 
     "exceptions" => 1 
    )); 

    //set headers 
    $headerbody = array(
     'Database' => MW_DATABASE, 
     'Username' => MW_USERNAME, 
     'Password' => MW_PASSWORD 
    ); 
    $ns = 'http://tempuri.org/'; 
    $header = new SoapHeader($ns, 'AuthenticationHeader', $headerbody); 
    $this->soap->__setSoapHeaders($header); 

    $orderInfo = array(
     'OrderNumber' => 23344, 
     'Email' => '[email protected]', 
     'Delivery' => array(
      'Name' => 'Peter', 
      'City' => 'LA', 
      'Post' => 1000, 
      'Address' => 'Test Street 1', 
      'Email' => '[email protected]', 
      'Phone' => '12345' 
     ), 
     'PaymentType' => 2, 
     'Items' => array(
      'OrderItem' => array(
       'Code' => 3479, 
       'Quantity' => 1, 
       'TotalPrice' => 2.73 
      ) 
     ) 
    ); 
    $soap->CreateOrder($orderInfo); 

しかし、私はいつもこのエラーが出る:

object(stdClass)#5 (1) { ["CreateOrderResult"]=> object(stdClass)#6 (4) 
    { ["ErrorMessage"]=> string(53) "Object reference not set to an instance of an object." 
    ["ErrorCode"]=> int(-1) ["Errs"]=> object(stdClass)#7 (0) { } ["OrderID"]=> int(0) } } 

私は他のメソッドCreateContragentで新しいcontragentを作成しましたが、CreateOrderは機能しませんでした。

配列データが間違っている可能性がありますか?しかし、私は多くの構成を試して何も動作しません。

答えて

0

あなたの責任ではありません、あなたのWebサービスは機能しませんでした。つまり、CreatingOrder関数の結果の説明です。

<?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> 
    <CreateOrderResponse xmlns="http://tempuri.org/"> 
     <CreateOrderResult> 
     <Errs> 
      <ErrorItem> 
      <ErrorCode>int</ErrorCode> 
      <ErrorMessage>string</ErrorMessage> 
      <ItemNumber>int</ItemNumber> 
      </ErrorItem> 
      <ErrorItem> 
      <ErrorCode>int</ErrorCode> 
      <ErrorMessage>string</ErrorMessage> 
      <ItemNumber>int</ItemNumber> 
      </ErrorItem> 
     </Errs> 
     <OrderID>int</OrderID> 
     </CreateOrderResult> 
    </CreateOrderResponse> 
    </soap:Body> 
</soap:Envelope> 
関連する問題