PHP code example of gando / partner

1. Go to this page and download the library: Download gando/partner library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

gando / partner example snippets


declare(strict_types=1);

ient;
use Gando\Partner\Connect\UrlBuilder;

$api = new Client(apiKey: getenv('GANDO_API_KEY') ?: 'gando_pk_...');
$response = $api->accounts->list();

$builder = new UrlBuilder(
    connectSecret: getenv('GANDO_CONNECT_SECRET') ?: 'gando_cs_...',
    partnerSlug: 'fleetee',
    baseUrl: 'https://dashboard.gando.app',
);
$signupUrl = $builder->signupUrl(externalId: 'fleet_acct_42');

declare(strict_types=1);

use Gando\Partner\Api\Client;
use Psr\EventDispatcher\EventDispatcherInterface;
use Psr\Http\Client\ClientInterface as HttpClientInterface;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Log\LoggerInterface;
use Psr\SimpleCache\CacheInterface;

/** @var HttpClientInterface $httpClient */
/** @var RequestFactoryInterface $requestFactory */
/** @var LoggerInterface $logger */
/** @var CacheInterface $cache */
/** @var EventDispatcherInterface $events */

$api = new Client(
    apiKey: $_ENV['GANDO_API_KEY'],
    httpClient: $httpClient,
    requestFactory: $requestFactory,
    logger: $logger,
    cache: $cache,
    events: $events,
);

declare(strict_types=1);

ando\Partner\Models\Components;

$sdk = Partner\Gando::builder()
    ->setSecurity(
        new Components\Security(
            partnerApiKeyAuth: '<YOUR_API_KEY_HERE>',
        )
    )
    ->build();



$response = $sdk->accounts->list(
    page: 1,
    limit: 20

);

if ($response->object !== null) {
    // handle response
}

declare(strict_types=1);

ando\Partner\Models\Components;

$sdk = Partner\Gando::builder()
    ->setSecurity(
        new Components\Security(
            partnerApiKeyAuth: '<YOUR_API_KEY_HERE>',
        )
    )
    ->build();



$response = $sdk->accounts->list(
    page: 1,
    limit: 20

);

if ($response->object !== null) {
    // handle response
}

declare(strict_types=1);

ando\Partner\Models\Components;
use Gando\Partner\Utils\Retry;

$sdk = Partner\Gando::builder()
    ->setSecurity(
        new Components\Security(
            partnerApiKeyAuth: '<YOUR_API_KEY_HERE>',
        )
    )
    ->build();



$response = $sdk->accounts->list(
    page: 1,
    limit: 20,
    options: Utils\Options->builder()->setRetryConfig(
        new Retry\RetryConfigBackoff(
            initialInterval: 1,
            maxInterval:     50,
            exponent:        1.1,
            maxElapsedTime:  100,
            retryConnectionErrors: false,
        ))->build()

);

if ($response->object !== null) {
    // handle response
}

declare(strict_types=1);

ando\Partner\Models\Components;
use Gando\Partner\Utils\Retry;

$sdk = Partner\Gando::builder()
    ->setRetryConfig(
        new Retry\RetryConfigBackoff(
            initialInterval: 1,
            maxInterval:     50,
            exponent:        1.1,
            maxElapsedTime:  100,
            retryConnectionErrors: false,
        )
  )
    ->setSecurity(
        new Components\Security(
            partnerApiKeyAuth: '<YOUR_API_KEY_HERE>',
        )
    )
    ->build();



$response = $sdk->accounts->list(
    page: 1,
    limit: 20

);

if ($response->object !== null) {
    // handle response
}

declare(strict_types=1);

ando\Partner\Models\Components;
use Gando\Partner\Models\Errors;

$sdk = Partner\Gando::builder()
    ->setSecurity(
        new Components\Security(
            partnerApiKeyAuth: '<YOUR_API_KEY_HERE>',
        )
    )
    ->build();

try {
    $response = $sdk->accounts->list(
        page: 1,
        limit: 20

    );

    if ($response->object !== null) {
        // handle response
    }
} catch (Errors\ErrorEnvelopeThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\ErrorEnvelopeThrowable $e) {
    // handle $e->$container data
    throw $e;
} catch (Errors\APIException $e) {
    // handle default exception
    throw $e;
}

declare(strict_types=1);

ando\Partner\Models\Components;

$sdk = Partner\Gando::builder()
    ->setServerURL('http://localhost:3000')
    ->setSecurity(
        new Components\Security(
            partnerApiKeyAuth: '<YOUR_API_KEY_HERE>',
        )
    )
    ->build();



$response = $sdk->accounts->list(
    page: 1,
    limit: 20

);

if ($response->object !== null) {
    // handle response
}

declare(strict_types=1);

ions\WebhookSignatureException;
use Gando\Partner\WebhookVerifier;

$rawBody = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_GANDO_SIGNATURE'] ?? '';
$timestamp = $_SERVER['HTTP_X_GANDO_TIMESTAMP'] ?? '';
$secret = getenv('GANDO_WEBHOOK_SECRET'); // your signing secret

try {
    WebhookVerifier::verify($rawBody, $signature, $timestamp, $secret);
} catch (WebhookSignatureException $e) {
    // $e->getReason() is "invalid" or "expired"
    http_response_code(400);
    exit;
}

$payload = json_decode($rawBody, true, flags: JSON_THROW_ON_ERROR);
// handle $payload...