A PHP client for consuming the Postmates API.
Via Composer
$ composer require aglipanci/postmates-api
Note that the minimum required version of PHP is 5.6
$client = new Postmates\PostmatesClient([
'customer_id' => 'some_customer_id',
'api_key' => 'production_or_test_api_key'
]);
Retrieve an API Key here after creating a developer account.
$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
$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
}
if you want to just validate the request but handing it on your own:
$webhook = new Postmates\PostmatesWebhook('signature_secret_key');
$webhook_request_is_valid = $webhook->validateRequest($payload, $key)
https://postmates.com/developer/docs#webhooks
All requests will throw an Postmates\PostmatesException in case API returns an Error. An Example:
$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
WooCommerce Postmates Integration Plugin
The MIT License (MIT).