我正在尝试使用OpenCart 2 API,但我并不完全熟悉它,也没有在一般的TBH中使用Opencart。Opencart 2 API会话问题
我在管理区域创建了一个API密钥,并且我可以通过传递用户名,密码和API密钥本身来成功地与来自外部源的API通信,并且我收到了成功消息。
实施例:
$url = "http://opencart.local:8888/index.php?route=api/login";
$postData = array(
"username" => $username,
"password" => $password,
"key" => $key
);
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_HEADER, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($postData));
$response = curl_exec($handle);
$header_size = curl_getinfo($handle, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);
$response = substr($response, $header_size);
curl_close($handle);
$return = json_decode($response, true);
返回响应如下:
阵列(2){[ “成功”] =>串(42)“成功:API会话 成功启动!” [ “令牌”] =>串(32) “rfjOIzMWobWSvKvdy2LnWsekp9v1qoQQ”}
然后,在这之后,我调用API以卡车/添加功能,以添加品(ID)连接到购物车:
$url = "http://opencart.local:8888/index.php?route=api/cart/add";
$cartData = array(
"product_id" => '47',
"quantity" => '1'
);
我以同样的方式卷曲,但我从Opencart的得到的响应是:
阵列(1){[ “错误”] =>数组(1){ [”警告“] => 字符串(54)”警告:您没有权限使用API!“ }}
当我检查这个问题,似乎这是由Opencart的要求,以授予权限的api_id丢失:
$this->session->data['api_id']
即使通过API登录时这个设置
。当我第二次打电话给购物车添加产品时,它会以某种方式丢失会话数据。请记住,在启用此功能时,我将无法访问OpenCart代码,因为这是一个只能通过API与仅用户名,密码和API密钥进行通信的外部CRM。
任何想法?我很感激任何帮助,因为我是OpenCart的noob!
谢谢
转到:管理CP>系统>用户>用户组>管理员[编辑]>选择所有访问和权限,然后单击save.' –
我明白这可能是我开发的解决方案,但最终我会没有对OpenCart安装的控制,因为我创建的是第三方CRM,它连接到OpenCart,并且如果可能的话,我宁愿使用默认设置,因为大多数客户端可能不会很舒服。 –
其实,所有的权限都被选为默认.... –