aglipanci/ postmates-api
PHP版的Postmates API客户端
v1.0.8
2017-03-07 08:57 UTC
Requires
- php: ^5.6 || ~7.0
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- phpunit/phpunit: ~4.6
README
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
致谢
WooCommerce集成
许可证
MIT许可证 (MIT)。