Как можно отправлять новый запрос, после ответа сервера на предидущий? Т.к. для последующих запросов параметры состоят из ответов предидущих.
<?php
/**
* http://www.php.net/manual/ru/function.curl-exec.php
*/
/**
* Send a GET request using cURL
* @param string $url to request
* @param array $get values to send
* @param array $options for cURL
* @return string
*/
function curl_get($url, array $get = NULL, array $options = array()) {
$defaults = array(
CURLOPT_URL => $url . (strpos($url, "?") === FALSE ? "?" : "") . http_build_query($get) ,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_DNS_USE_GLOBAL_CACHE => false,
CURLOPT_SSL_VERIFYHOST => 0, //unsafe, but the fastest solution for the error " SSL certificate problem, verify that the CA cert is OK"
CURLOPT_SSL_VERIFYPEER => 0, //unsafe, but the fastest solution for the error " SSL certificate problem, verify that the CA cert is OK"
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if (!$result = curl_exec($ch)) {
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
$url = "https://iiko.biz:9900/api/0/auth/access_token";
$data = [
"user_id" => "demoDelivery",
"user_secret"=> "PI1yFaKFCGvvJKi"
];
//Запрос на токен который мне нужно использовать в следующем запросе
$access_token = curl_get($url, $data);
//Запрос на данные организации
$getOrganizationInfo = curl_get("https://iiko.biz:9900/api/0//organization/list", ["access_token" => $access_token]);
$getOrganizationInfo = json_decode($getOrganizationInfo);
//Получить id организации
$getId = $getOrganizationInfo[0]->id;
//Получить меню
$getMenu = curl_get("https://iiko.biz:9900/api/0/nomenclature/" . $getId . "?access_token=" . $access_token);
//Данные пользователя
$name = "Иван";
$phone = "71235678901";
$deliveryType = "Доставка";
$city = "Москва";
$street = "Красная площадь";
$building = "1";
$korpus = "";
$room = "14";
$comment = "comment";
Всё ломаете на первом шаге, т.к. не получив $access_token
запускаю след. функцию в которой его использую...Заранее спасибо!
В представленном вами примере curl-запрос возвращает access_token c двойными кавычками в начале и конце:
string(89) ""enAr4qJE8rjK1pEmqNs8MRW0pcZKper1FLfYec9FPN5n2jpelnUBedO51IlJTy6IiMH74Nm_v5rjRVV0T9AvEQ2""
При попытке передать такой токен в следующие методы, api возвращает ошибку, ссылаясь на неверный токен.
Для решения проблемы вам необходимо убрать лишние кавычки.
$access_token = curl_get($url, $data);
var_dump($access_token); //string(89) ""enAr4qJE8rjK1pEmqNs8MRW0pcZKper1FLfYec9FPN5n2jpelnUBedO51IlJTy6IiMH74Nm_v5rjRVV0T9AvEQ2""
$token = trim($access_token,'"'); //string(87) "enAr4qJE8rjK1pEmqNs8MRW0pcZKper1FLfYec9FPN5n2jpelnUBedO51IlJTy6IiMH74Nm_v5rjRVV0T9AvEQ2"
Соответственно, далее уже передавать исправленный токен $token
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Разрабатываю тестовый проект с использованием Apache 24, Php 5