Создана мной для упрощения использования API корпоративного клиента Яндекс такси из внешних приложений на PHP.
Эта библиотека лицензирована по лицензии MIT, см. файл LICENSE.txt. This library is distributed under MIT license, please refer to LICENSE.txt file.
Требуется PHP версии 7.1 или новее и composer. Предполагается, что composer и autoload уже настроены. Вам потребуется выполнить следующий код:
php composer.phar require karevn/yandex-taxi-corp-client
Вам потребуется зайти в интерфейс личного кабинета Яндекс Такси для бизнеса под аккаунтом Яндекс.Паспорта, для которого кабинет был создан (именно тот самый, дополнительные аккаунты не годятся). В кабинете надо зайти на закладку "Профиль компании" и получить токен, нажав кнопку "Токен для API" внизу страницы.
Перед любыми действиями с API надо создать экземпляр клиента и авторизоваться:
use YandexTaxiCorpClient\Client;
$token = '<ваш токен oAuth';
$client = new Client($token);
$client->authenticate();
// Первый параметр - долгота, второй - широта
$address = $client->convertPositionToAddress(37.60936701562499, 55.75253245573649);
// Первый параметр - текст, второй - долгота, третий - широта точки, поблизости
// от которой надо искать. Обычно это центр вашего города или ваша геопозиция.
$address = $client->findAddress('Москва, Кремль', 37.60936701562499, 55.75253245573649);
// Первые два параметра - широта и долгота, последний - тип точки (true = посадка, false = высадка)
$address = $client->getNearestPickupPoint(37.60936701562499, 55.75253245573649, true);
// Получим адреса начала и конца поездки
$source = $client->getAddressByPosition(37.60936701562499, 55.75253245573649);
$destination = $client->getAddressByPosition(37.60936701562499, 55.76253245573649);
// Теперь оценим поездку с требованием "перевозка животного"
$estimate = $client->estimate(new EstimateParams(
// Телефон передаётся без разделительных пробелов и плюса
'71234567890',
// Точек поездки может быть больше
[new RoutePoint($source), new RoutePoint($destination)],
// Тариф
'comfortplus',
// Требования
array(new BooleanRequirement('animaltransport', true))
));
// Покажем оценку
echo $estimate->getPrice();
// Создадим объект заказа на основе оценки
$order = Order::createFromEstimate($estimate);
// Создадим заказ, в этот момент он создаётся, но не забирается в работу.
$orderID = $client->createOrder($order);
// А вот теперь мы его подтверждаем и он пойдёт в работу.
$client->commitOrder($orderID);