卡乐文 / 雅虎出租车公司客户端
雅虎出租车公司客户端的API
dev-master
2022-03-30 03:30 UTC
Requires
- php-http/guzzle6-adapter: ^2.0
- ramsey/uuid: ^4.0
Requires (Dev)
- phpunit/phpunit: ^9.0
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);