/yandex-taxi-corp-client

Клиенская библиотека на PHP для корпоративного API Яндекс.Такси

Primary LanguagePHPMIT LicenseMIT

Библиотека для доступа к API корпоративного клиента Яндекс.Такси

Создана мной для упрощения использования API корпоративного клиента Яндекс такси из внешних приложений на PHP.

Лицензия / License

Эта библиотека лицензирована по лицензии 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);