nilsenj / uber
laravel 的简单 Uber PHP SDK 实现
Requires
- php: >=7.0
- illuminate/support: 5.0.*|5.1.*|5.2.*|5.3.*|5.4.*
- stevenmaguire/uber-php: ^1.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-09-20 08:01:01 UTC
README
uber api v1.* for Laravel 5.*
首先 前往 Uber 控制台
并获取 server_token
安装
-
运行
composer require nilsenj/uber或在composer.json中的require键中添加"nilsenj/uber": "dev-master",然后运行composer install -
将
\nilsenj\Uber\UberServiceProvider::class,添加到config/app.php文件中的providers键 -
将
'Uber' => \nilsenj\Uber\Facades\UberFacade::class,添加到config/app.php文件中的aliases键 -
运行
php artisan vendor:publish以发布配置。您可以在config/uber.php中查看它
用法
#####使用合约
protected $uber; /** * UberController constructor. * @param UberContract $uber */ public function __construct(UberContract $uber) { $this->uber = $uber; } public function index() { $this->uber->someMethod(); }
#####方法列表
获取产品
按位置
$products = app('UberContract')->getProductsByLocation($latitude, $longitude);
https://developer.uber.com/docs/riders/references/api/v1.2/products-get
按 ID
$product = app('UberContract')->getProductsById($productId);
https://developer.uber.com/docs/riders/references/api/v1.2/products-product_id-get
获取价格估计
$estimates = app('UberContract')->getPriceEstimates($start_latitude, $start_longitude, $end_latitude, $end_longitude);
https://developer.uber.com/docs/riders/references/api/v1.2/estimates-price-get
获取时间估计
$estimates = app('UberContract')->getTimeEstimates($start_latitude, $start_longitude);
https://developer.uber.com/docs/riders/references/api/v1.2/estimates-time-get
获取促销
$promotions = app('UberContract')->getPromotions($start_latitude, $start_longitude, $end_latitude, $end_longitude);
https://developer.uber.com/docs/riders/ride-promotions/introduction
获取用户活动
此功能仅从版本 1.1 开始提供。
$history = app('UberContract')->getUserActivity();
https://developer.uber.com/docs/riders/references/api/v1.2/history-get
获取用户资料
$profile = app('UberContract')->getUserProfile();
https://developer.uber.com/docs/riders/references/api/v1.2/me-get
更新用户资料
$attributes = array('applied_promotion_codes' => 'PROMO_CODE'); $profileResponse = app('UberContract')->updateUserProfile($attributes);
https://developer.uber.com/docs/riders/references/api/v1.2/me-patch
获取支付方式
$paymentMethods = app('UberContract')->getPaymentMethods();
https://developer.uber.com/docs/riders/references/api/v1.2/payment-methods-get
获取地点
$placeId = 'home'; $place = app('UberContract')->getPlace($placeId);
https://developer.uber.com/docs/riders/references/api/v1.2/places-place_id-get
更新地点
$placeId = 'home'; $attributes = array('address' => '685 Market St, San Francisco, CA 94103, USA'); $place = app('UberContract')->updatePlace($placeId, $attributes);
https://developer.uber.com/docs/riders/references/api/v1.2/places-place_id-put
请求行程
$request = app('UberContract')->requestToRide($start_latitude, $start_longitude, $end_latitude, $end_longitude, $product_id = null, $surge_confirmation_id = null, $payment_method_id = null);
获取当前行程详情
$request = app('UberContract')->getCurrentRideDetails();
https://developer.uber.com/docs/riders/references/api/v1.2/requests-current-get
获取行程详情
$request = app('UberContract')->getRideDetails($requestId);
https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-get
更新当前行程详情
$end_address= '685 Market St, San Francisco, CA 94103, USA', $end_nickname = 'da crib', $end_place_id = 'home', $end_latitude = '41.87499492', $end_longitude = '-87.67126465' $updateRequest = app('UberContract')->updateCurrentRideDetails($end_address, $end_nickname, $end_place_id, $end_latitude, $end_longitude);
https://developer.uber.com/docs/riders/references/api/v1.2/requests-current-patch
更新行程详情
$requestId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939' $end_address = '685 Market St, San Francisco, CA 94103, USA', $end_nickname = 'da crib', $end_place_id = 'home', $end_latitude = '41.87499492', $end_longitude = '-87.67126465' $updateRequest = Uber::updateRideDetails($requestId, $end_address, $end_nickname, $end_place_id, $end_latitude, $end_longitude);
https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-patch
获取行程估计
$product_id = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939', $start_latitude = '41.85582993', $start_longitude = '-87.62730337', $end_latitude = '41.87499492', // optional $end_longitude = '-87.67126465', // optional $requestEstimate = app('UberContract')->getRideEstimate($product_id, $start_latitude, $start_longitude, $end_latitude, $end_longitude);
https://developer.uber.com/docs/riders/references/api/v1.2/requests-estimate-post
获取行程地图
$map = Uber::getRideMap($requestId);
https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-map-get
获取行程收据
$receipt = app('UberContract')->getRideReceipt($requestId);
https://developer.uber.com/docs/riders/references/api/v1.2/requests-current-delete
取消行程
$request = app('UberContract')->cancelRide($requestId);
https://developer.uber.com/docs/riders/references/api/v1.2/requests-request_id-delete
创建提醒
$attributes = array( 'reminder_time' => '1429294463', 'phone_number' => '555-555-5555', 'event' => array( 'time' => '1429294463', 'name' => 'Frisbee with friends', 'location' => 'Dolores Park', 'latitude' => '37.759773', 'longitude' => '-122.427063', ), 'product_id' => 'a1111c8c-c720-46c3-8534-2fcdd730040d', 'trip_branding' => array( 'link_text' => 'View team roster', 'partner_deeplink' => 'partner://team/9383', ) ); $reminder = app('UberContract')->createReminder($attributes)
https://developer.uber.com/docs/riders/references/api/v1.2/reminders-post
获取提醒
$reminderId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939'; $reminder = app('UberContract')->getReminder($reminderId);
https://developer.uber.com/docs/riders/references/api/v1.2/reminders-reminder_id-get
更新提醒
$reminderId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939'; $attributes = array( 'reminder_time' => '1429294463', 'phone_number' => '555-555-5555', 'event' => array( 'time' => '1429294463', 'name' => 'Frisbee with friends', 'location' => 'Dolores Park', 'latitude' => '37.759773', 'longitude' => '-122.427063', ), 'product_id' => 'a1111c8c-c720-46c3-8534-2fcdd730040d', 'trip_branding' => array( 'link_text' => 'View team roster', 'partner_deeplink' => 'partner://team/9383', ) ); $reminder = Uber::updateReminder($reminderId, $attributes);
https://developer.uber.com/docs/riders/references/api/v1.2/reminders-reminder_id-patch
取消提醒
$reminderId = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939'; $reminder = app('UberContract')->cancelReminder($reminderId);
https://developer.uber.com/docs/riders/references/api/v1.2/reminders-reminder_id-delete
速率限制
此功能仅支持 API 的
v1版本。
速率限制是基于特定客户端的秘密令牌实现的。默认情况下,每个秘密令牌每小时可以发起 1,000 个请求。
当使用此包消耗服务时,您的速率限制状态将在客户端中可用。
$rateLimit = app('UberContract')->rateLimiting($productId); will return an array ["limit" => , "remaining" => , "reset" => ]
这些值将在每次请求后更新。在客户端创建后和第一个成功请求之前,getRateLimit 将返回 null。
https://developer.uber.com/v1/api-reference/#rate-limiting
使用沙盒
修改正在进行的沙盒请求的状态。
当客户端不在沙盒模式下调用这些方法时,将抛出
Stevenmaguire\Uber\Exception。除非您正在使用沙盒环境,否则底层API端点没有任何效果。
$product_id = '4bfc6c57-98c0-424f-a72e-c1e2a1d49939', $start_latitude = '41.85582993', $start_longitude = '-87.62730337', $end_latitude = '41.87499492', $end_longitude = '-87.67126465' $updateRequest = app('UberContract')->modifyOngoingStatusRequestSandbox( $product_id, $start_latitude, $start_longitude, $end_latitude, $end_longitude, $status = '');