我正在使用Magento 1.9CE,目前正在尝试使用SOAP v2 API获取客户列表:
$client = new SoapClient('https://mywebsite.co.uk/api/v2_soap?wsdl=1');
$client->startSession();
$session = $client->login('myUser', 'myPass');
$customerList = $client->customerCustomerList($session);
$client->endSession($session);
我收到以下错误:
致命错误:未捕获的SoapFault异常:[客户端]看起来像我们得到的 没有XML文档
不用担心,可能是典型的BOM问题,所以我使用这段代码:
class SoapClientNG extends \SoapClient {
public function __doRequest($req, $location, $action, $version = SOAP_1_1){
$xml = explode("\r\n", parent::__doRequest($req, $location, $action, $version));
$response = preg_replace( '/^(\x00\x00\xFE\xFF|\xFF\xFE\x00\x00|\xFE\xFF|\xFF\xFE|\xEF\xBB\xBF)/', "", $xml[0] );
return $response;
}
}
没有运气。相同的XML错误。
如果我回复$client__getLastResponse()
,那么您可以看到我实际上从API获取数据。它返回了一大堆带有客户信息的字符串:(我明显更改了名称,电子邮件和密钥)
6df498735273201a7c14884731265f32:SwSWKGIHACbtO7BOEH382733uYHbcOIZ 376 2016-01-13 15:56:41 2016-01-19 08:19:13 000000288 1 1 English customer1@yahoo.com John Waters 1
6df498735273201a7c14884731265f32:SwSWKGIHACbtO7BOEH382733uYHbcOIZ 377 2016-01-16 09:29:07 2016-01-16 09:42:44 000000289 1 1 English cusomter2@yahoo.com Paul Beaufort 1
6df498735273201a7c14884731265f32:SwSWKGIHACbtO7BOEH382733uYHbcOIZ 378 2016-01-18 07:21:21 2016-07-12 13:21:17 000000290 1 1 English customer3@google.com Linda Yagee 1
6df498735273201a7c14884731265f32:SwSWKGIHACbtO7BOEH382733uYHbcOIZ 379 2016-01-20 09:28:41 2016-01-20 12:30:06 000000291 1 1 English customer4@gmail.com Fred 1
6df498735273201a7c14884731265f32:SwSWKGIHACbtO7BOEH382733uYHbcOIZ 380 2016-01-21 07:36:55 2016-01-21 07:36:55 000000292 1 1 English customer5@eventland.com Paul Bishop 1
我出错了什么?