1
我尝试在SOAP网络服务来创建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
成功创建了新的反应,但是CreateOrder
没有工作。
可能是数组数据有误?但我尝试了很多配置,没有任何工作。