我正在嘗試使用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,並且如果可能的話,我寧願使用默認設置,因爲大多數客戶端可能不會很舒服。 –
其實,所有的權限都被選爲默認.... –