aglipanci/postmates-api

PHP版的Postmates API客户端

v1.0.8 2017-03-07 08:57 UTC

This package is auto-updated.

Last update: 2024-09-17 02:59:04 UTC


README

Build Status

Postmates API的PHP客户端。

安装

通过Composer

$ composer require aglipanci/postmates-api

注意,所需的最小PHP版本是5.6

用法

创建客户端

$client = new Postmates\PostmatesClient([
    'customer_id' => 'some_customer_id',
    'api_key' => 'production_or_test_api_key'
]);

在创建开发者账户后,从这里获取API密钥

获取配送报价

$delivery_quote = new Postmates\Resources\DeliveryQuote($client);
$delivery_quote->getQuote('501-525 Brannan St, San Francisco, CA 94107', '6 Colin P Kelly Jr St, San Francisco, CA 94107');

https://postmates.com/developer/docs/endpoints#get_quote

获取配送区域

$delivery_zones = new Postmates\Resources\DeliveryZones($client);
$delivery_zones->listZones();

https://postmates.com/developer/docs/endpoints#get_zones

创建配送

$delivery = new Postmates\Resources\Delivery($client);

$params = [
    'manifest' => 'test manifest',
    'pickup_name' => 'test pickup nanme',
    'pickup_address' => '501-525 Brannan St, San Francisco, CA 94107',
    'pickup_phone_number' => '222 551 1234',
    'dropoff_name' => 'test dropoff name',
    'dropoff_address' => '6 Colin P Kelly Jr St, San Francisco, CA 94107',
    'dropoff_phone_number' => '222 555 5432',
];

$delivery->create($params);

https://postmates.com/developer/docs/endpoints#create_delivery

列出配送

$delivery = new Postmates\Resources\Delivery($client);
$delivery->listDeliveries();

https://postmates.com/developer/docs/endpoints#list_deliveries

获取配送

$delivery = new Postmates\Resources\Delivery($client);
$delivery->get('del_LAPCo_EAxDv6z-');

https://postmates.com/developer/docs/endpoints#get_delivery

取消配送

$delivery = new Postmates\Resources\Delivery($client);
$delivery->cancel('del_LAPCo_EAxDv6a-');

https://postmates.com/developer/docs/endpoints#cancel_delivery

为配送添加小费

$delivery = new Postmates\Resources\Delivery($client);
$delivery->addTip('del_LAPCo_EAxDv6a-', 1000); // amount in cents

https://postmates.com/developer/docs/endpoints#tip_delivery

处理WebHooks

$webhook = new Postmates\PostmatesWebhook('signature_secret_key');
$webhook_request = $webhook->parseRequest() // this will validate and return the webhook request

if($webhook_request['kind'] == Delivery::EVENT_DELIVERY_STATUS) {
    //this is a delivery status event
}

if($webhook_request['kind'] == Delivery::EVENT_COURIER_UPDATE) {
    //this is a courrier update event
}

如果你只想验证请求,但由你自己处理

$webhook = new Postmates\PostmatesWebhook('signature_secret_key');
$webhook_request_is_valid = $webhook->validateRequest($payload, $key)

https://postmates.com/developer/docs#webhooks

错误

如果API返回错误,所有请求都将抛出Postmates\PostmatesException异常。示例

$params = [
    'manifest' => 'test manifest',
    'pickup_name' => 'test pickup nanme',
    'pickup_address' => '501-525 Brannan St, San Francisco, CA 94107',
    'pickup_phone_number' => '222 551 1234',
    'dropoff_name' => 'test dropoff name',
    'dropoff_address' => '6 Colin P Kelly Jr St, San Francisco, CA 94107',
    'dropoff_phone_number' => '222 555 5432',
];


try {

    $delivery->create($params);
    
} catch (Postmates\PostmatesException $e) {
    
    $e->getMessage();
    $e->getInvalidParams();
    
}

测试

$ ./vendor/bin/phpunit

致谢

Agli Panci

WooCommerce集成

WooCommerce Postmates集成插件

许可证

MIT许可证 (MIT)。