Php Opencart 2 API会话问题
我试图使用OpenCart 2 API,但我对它并不完全熟悉,也不完全熟悉OpenCart 我已经在管理区创建了一个API密钥,通过传递用户名、密码和API密钥本身,我可以从外部源成功地与API通信,并收到一条成功消息 例如:Php Opencart 2 API会话问题,php,api,session,curl,opencart,Php,Api,Session,Curl,Opencart,我试图使用OpenCart 2 API,但我对它并不完全熟悉,也不完全熟悉OpenCart 我已经在管理区创建了一个API密钥,通过传递用户名、密码和API密钥本身,我可以从外部源成功地与API通信,并收到一条成功消息 例如: $url = "http://opencart.local:8888/index.php?route=api/login"; $postData = array( "username" => $username, "password"
$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){[“success”]=>string(42)“成功:API会话”
已成功启动!“[“令牌”]=>字符串(32)
“rfjOIzMWobWSvKvdy2LnWsekp9v1qoQQ”}
然后,在此之后,我调用API中的cart/add函数,将产品(按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登录时设置的。当我第二次调用将产品添加到购物车时,它不知怎的丢失了会话数据。请记住,当启动live时,我将无法访问OpenCart代码,因为这是一个外部CRM,只能通过API使用用户名、密码和API密钥进行通信
有什么想法吗?我将感谢任何帮助,因为我是OpenCart的noob
谢谢你我也有过类似的经历;我不小心删除了API密钥并创建了一个新的,但是API刚刚停止工作 我发现
$this->config->get('config\u api\u id')代码>始终返回“1”。因此,在数据库上将我新创建的API键API_id
值更改为1,它就工作了
我正在使用2.1.0.1版我有过类似的经历;我不小心删除了API密钥并创建了一个新的,但是API刚刚停止工作
我发现$this->config->get('config\u api\u id')代码>始终返回“1”。因此,在数据库上将我新创建的API键API_id
值更改为1,它就工作了
我使用的是2.1.0.1版您需要在curl选项中为cookies传递一个文件。几乎所有的认证都需要它来写和读:curl_setopt($handle,CURLOPT_COOKIEJAR,'cookie_file.txt') 您需要在curl选项中为cookies传递一个文件。几乎所有的认证都需要它来写和读:curl_setopt($handle,CURLOPT_COOKIEJAR,'cookie_file.txt') 转到:Admin CP>System>Users>User Groups>Administrator[edit]>选择所有访问权限并单击save。
我很感激这可能是我开发的解决方案,但最终我将无法控制OpenCart的安装,因为我创建的是一个连接到OpenCart的第三方CRM,如果可能的话,我更喜欢使用默认设置,因为大多数客户端可能不喜欢这样做。实际上,所有权限都被选为默认权限…然后您必须在OC Admin面板中配置API
。如果没有任何配置,您将无法访问API。您是否具有管理面板访问权限?请转到:admin CP>System>Users>User Groups>Administrator[edit]>选择所有访问权限和权限,然后单击save。
我很感激这可能是我的开发解决方案,但最终我将无法控制OpenCart的安装,因为我正在创建的是一个连接到OpenCart的第三方CRM,如果可能的话,我更愿意使用默认设置,因为大多数客户可能不喜欢这样做。实际上,所有权限都被选为默认权限…然后您必须在OC管理面板中配置API
。如果没有任何配置,您将无法访问API。您有管理面板访问权限吗?