Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 解决SoapClient错误:";对象引用未设置为对象的实例。”;_Php_Web Services_Soap_Wsdl - Fatal编程技术网

Php 解决SoapClient错误:";对象引用未设置为对象的实例。”;

Php 解决SoapClient错误:";对象引用未设置为对象的实例。”;,php,web-services,soap,wsdl,Php,Web Services,Soap,Wsdl,我尝试在soap web服务中使用CreateOrder方法创建订单: 使用以下简单代码: $soap = new SoapClient(MW_SOAP_URL, array( "trace" => 1, "exceptions" => 1 )); //set headers $headerbody = array( 'Database' => MW_DATABASE, 'Use

我尝试在soap web服务中使用CreateOrder方法创建订单:

使用以下简单代码:

    $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' => 'test@test.com',
        'Delivery' => array(
            'Name' => 'Peter',
            'City' => 'LA',
            'Post' => 1000,
            'Address' => 'Test Street 1',
            'Email' => 'test@test.com',
            'Phone' => '12345'
        ),
        'PaymentType' => 2,
        'Items' => array(
            'OrderItem' => array(
                'Code' => 3479,
                'Quantity' => 1,
                'TotalPrice' => 2.73
            )
        )
    );
    $soap->CreateOrder($orderInfo);
但我总是犯这样的错误:

我用另一种方法
createcontract
成功地创建了新的contract,但是
CreateOrder
不起作用


可能是阵列数据错误?但我尝试了很多配置,但都没有效果

这不是你的错,你的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>

int
一串
int
int
一串
int
int

这不是你的错,你的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>

int
一串
int
int
一串
int
int