2017 © Pedro Peláez
 

library lalamove-php-api

PHP client for the Lalamove API

image

foodkit/lalamove-php-api

PHP client for the Lalamove API

  • Tuesday, May 8, 2018
  • by coreymcmahon
  • Repository
  • 1 Watchers
  • 1 Stars
  • 175 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 8 Versions
  • 600 % Grown

The README.md

Lalamove PHP API

CircleCI, (*1)

This provides a PHP wrapper around the Lalamove API (v2 and v3). Currently supports PHP >= 7.4|8.1, (*2)

Built and maintained by Foodkit., (*3)

Running the tests

$ ./vendor/bin/phpunit tests/
PHPUnit 9.5.19 #StandWithUkraine

...............................................                   47 / 47 (100%)

Time: 00:09.259, Memory: 10.00 MB

OK (47 tests, 142 assertions)

Using the library

<?php

$settings = new \Lalamove\Client\V3\Settings(
    'https://sandbox-rest.lalamove.com',
    'API_KEY',
    'API_SECRET',
    \Lalamove\Client\V3\Settings::COUNTRY_SINGAPORE // country
);

$client = new Lalamove\Client\V3\Client($settings);

//////
// Create a quote:
$quotation = new \Lalamove\Requests\V3\Quotation(/* parameters here */);

// ...prepare the quotation object...
$quotationResponse = $client->quotations()->create($quotation);

// Get quotation by id
$quotationDetailsResponse = $client->quotations()->get($quotation->quotationId);

//////
// Create an order
// Provide the quotationID and stopId received from create quote and add contact information for both the sender and recipients
$contact = new \Lalamove\Requests\V3\Contact('Contact Name', '+65991111110', 'stop_id_from_quotation');

// recipient contact and instruction per stop
$recipients = [
    [
        'stopId' => 'stop_id_1',
        'name' => 'name',
        //  Must be a valid number with region code (ex: +65)
        'phone' => '+65991111111',
    ], [
        'stopId' => 'stop_id_2',
        'name' => 'name',
        //  Must be a valid number with region code (ex: +65)
        'phone' => '+65991111112',
    ]
];

$order = new \Lalamove\Requests\V3\Order($quotationId, $sender, $recipients);
$orderResponse = $client->orders()->create($order);

// Fetch order details:
$details = $client->orders()->details($orderResponse->orderId);

// Get the driver:
// driverId from create order or by order details response
$driver = $client->drivers()->get($details->orderId, $details->driverId);

// Cancel the order:
$details = $client->orders()->cancel($orderResponse->orderId);

//////
// Create a webhook
$webhook = new \Lalamove\Requests\V3\Webhook('https://webhook.site/fd8ccc58-7447-4122-8a0c-f9c31eb79ad3');
$webhook = $client->webhooks()->create($webhook));

Errors

The client library will throw exceptions in the case of request (or server) errors., (*4)

try {
    $client->orders()->create($order);
} catch (\Lalamove\Exceptions\PaymentRequiredException $ex) {
    echo 'Error: not enough funds in Lalamove wallet to create the order';
}

You can handle these independently (see exceptions in src/Exceptions/), or just catch the supertype Lalamove\Exceptions\LalamoveException to handle all failure cases., (*5)

try {
    $client->orders()->create($order);
} catch (\Lalamove\Exceptions\LalamoveException $ex) {
    echo "Error: I don't know what happened, but the request failed for some reason.";
}

Contributing

Open a PR against master. Please use PSR-x conventions for everything and include tests., (*6)

Design goals

  • Lean on the IDE. We should leverage the IDE (autocompletion) to help the developer to use the library.
  • Hide the transport mechanism (HTTP) as much as possible. Except when absolutely necessary (e.g endpoint configuration, request timeouts), the end user should not be worried about HTTP concepts when using the library.
  • Interface should be pleasant/unobtrusive to use. The library should remove as much friction from the development process as possible.

License

See LICENSE., (*7)

The Versions

08/05 2018

dev-master

9999999-dev

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon

08/05 2018

1.0.0

1.0.0.0

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon

04/05 2018

0.0.6

0.0.6.0

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon

27/04 2018

0.0.5

0.0.5.0

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon

26/04 2018

0.0.4

0.0.4.0

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon

26/04 2018

0.0.3

0.0.3.0

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon

26/04 2018

0.0.2

0.0.2.0

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon

19/04 2018

0.0.1

0.0.1.0

PHP client for the Lalamove API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Corey Mcmahon