Skip to content

SDK for the Amazon Incentives API based on the structure of the async-aws project

License

Notifications You must be signed in to change notification settings

Incenteev/async-amazon-incentives

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e45113a · Oct 14, 2024

History

34 Commits
Jul 11, 2023
Oct 14, 2024
Oct 14, 2024
Oct 14, 2024
Jul 11, 2023
Jun 21, 2023
Jul 5, 2023
Jul 11, 2023
Jul 11, 2023
Jun 21, 2023
Oct 11, 2024
Jul 5, 2023
Jul 5, 2023
Jul 5, 2023
Jul 5, 2023
Jun 21, 2023

Repository files navigation

Async Amazon Incentives

This package provides an unofficial SDK for the Amazon Incentives API.

Installation

Use Composer to install the library:

$ composer require incenteev/async-amazon-incentives

Usage

use AsyncAws\Core\Configuration;
use Incenteev\AsyncAmazonIncentives\AmazonIncentivesClient;
use Incenteev\AsyncAmazonIncentives\Enum\CurrencyCode;
use Incenteev\AsyncAmazonIncentives\Exception\SystemTemporarilyUnavailableException;
use Incenteev\AsyncAmazonIncentives\Region;
use Incenteev\AsyncAmazonIncentives\ValueObject\MoneyAmount;

// Get your credentials in the Amazon Incentives portal
$accessKey = '';
$secretKey = '';
$partnerId = '';

// Choose the region corresponding to your partnership, with either the sandbox or production one.
$region = Region::EUROPE_AND_ASIA_SANDBOX;

$client = new AmazonIncentivesClient([
    Configuration::OPTION_ACCESS_KEY_ID => $accessKey,
    Configuration::OPTION_SECRET_ACCESS_KEY => $secretKey,
    Configuration::OPTION_REGION => $region,
]);

try {
    $result = $client->createGiftCard([
        'partnerId' => $partnerId,
        'creationRequestId' => '', // Create the proper request id
        'value' => new MoneyAmount(['amount' => 10, 'currencyCode' => CurrencyCode::EUR]),
    ]);

    $code = $result->getGcClaimCode();
} catch (SystemTemporarilyUnavailableException $e) {
    // TODO handle temporary failures according to the Amazon Incentives best practices
}

Note: due to the async nature of the project, the exception is not actually thrown by the call to createGiftCard but when the Result object gets resolved.

License

This package is under the MIT license.

Reporting an issue or a feature request

Issues and feature requests are tracked in the GitHub issue tracker.