我试图通过API从我的供应商导入我的订单到我的PS 1.6.0.14。好吧,在localhost中一切正常,但现在在服务器上我遇到了一个大问题。
尝试检查客户是否存在时,我收到此错误。
HTTP XML response is not parsable: array ( 0 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 4, 'column' => 1, 'message' => 'Start tag expected, \'<\' not found ', 'file' => '', 'line' => 1, )), )
检查客户是否存在的功能就是这个:
function custExist($email_ws, $webService){
$opt = [
'resource' => 'customers',
'display' => '[email]',
'filter[email]' => '['.$email_ws.']',
'limit' => '1',
];
//After this call, I've got the error.
$xml = $webService->get($opt);
if($email_ws == $xml->customers->customer->email)
return FALSE;
else
return TRUE;
}
最后,webservice获取功能:
public function get($options)
{
if (isset($options['url']))
$url = $options['url'];
elseif (isset($options['resource']))
{
$url = $this->url.'/api/'.$options['resource'];
$url_params = array();
if (isset($options['id']))
$url .= '/'.$options['id'];
$params = array('filter', 'display', 'sort', 'limit', 'id_shop', 'id_group_shop');
foreach ($params as $p)
foreach ($options as $k => $o)
if (strpos($k, $p) !== false)
$url_params[$k] = $options[$k];
if (count($url_params) > 0)
$url .= '?'.http_build_query($url_params);
}
else
throw new PrestaShopWebserviceException('Bad parameters given');
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'GET'));
self::checkStatusCode($request['status_code']);// check the response validity
return self::parseXML($request['response']);
}
任何解决此问题的提示?提前谢谢。
编辑:我已经从后端删除了友情网址,现在错误更大......如果我在响应中启用了webservice调用的调试模式,那么我有一些HTML代码,没有JSON响应。有点奇怪...
RETURN HTTP BODY
<!DOCTYPE HTML>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="es-es"><![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8 ie7" lang="es-es"><![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9 ie8" lang="es-es"><![endif]-->
<!--[if gt IE 8]> <html class="no-js ie9" lang="es-es"><![endif]-->
<html lang="es-es">
<head>
<meta charset="utf-8" />
<title>PAGE TITLE</title>
<meta name="description" content="Tienda creada con PrestaShop" />
<meta name="keywords" content="tienda, prestashop" />
<meta name="generator" content="PrestaShop" />
<meta name="robots" content="index,follow" />
<meta name="viewport" content="width=device-width, minimum-scale=0.25, maximum-scale=1.6, initial-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<link rel="icon" type="image/vnd.microsoft.icon" href="/img/favicon.ico?1482254072" />
.......
编辑2:好的,问题成立了。调用API Webservice的URL,例如www.myprestashop.com/api/customers,将我重定向到我的商店前端。
有什么想法吗? :(
答案 0 :(得分:0)
可能是与CHMOD权限相关的内容。如果您正在使用AWS服务,我百分百肯定就是这样。
嗯,没有来自网络服务的数据?进行其他类型的通话。