卡乐文/雅虎出租车公司客户端

雅虎出租车公司客户端的API

dev-master 2022-03-30 03:30 UTC

This package is auto-updated.

Last update: 2024-09-20 00:07:05 UTC


README

我创建这个库是为了简化从外部应用程序使用PHP访问雅虎出租车公司客户端API的过程。

许可协议 / 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);