mblsolutions/inspireddeck-php

Official Inspired Deck interface for PHP applications.

v2.0.0 2022-12-09 16:04 UTC

README

Build Status

The Inspired Deck Interface for PHP gives you an API interface into the Inspired Deck Platform for your PHP applications.

Contents

Integration Applications

Inspired Deck provides an interface for the integrator to manage their own set of security credentials. This interface is available from the ‘Integrations’ menu item of the Inspired Deck Portal.

Installation

The recommended way to install Inspired Deck PHP is through Composer.

composer require mblsolutions/inspireddeck-php

Usage

Authentication

Please Note: Your API credentials (Client ID, Client Secret and access_tokens) carry many permissions. Keep these credentials secure. Do not share this data in Github, client side code etc... If you believe any of your credentials have been compromised, within the Inspired Deck integration application interface revoke/reset user tokens, client secrets and encryption keys.

Authentication can be made by passing your Inspired Deck Integration Application Client ID, Client Secret, Users Email and Users Password to the authentication password method.

$deckAuthentication = new \MBLSolutions\InspiredDeck\Authentication();

$authentication = $deckAuthentication->password(1, 'auth-secret', 'john.doe@exmaple.com', 'password');

A successful authentication will return an OAuth response containing access, refresh and user information.

[
    'token_type' => 'Bearer',
    'expires_in' => 31622400,
    'access_token' => 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjBmOGMwNDAxZDAy',
    'refresh_token' => 'def5020002eca9ac7875d5d800c195024d7fb702535c0d30a0',
    'user' => [
        'name' => 'John Doe',
        'email' => 'john.doe@example.com',
        'role' => 'programme_manager'
    ]
];

We recommend this information is stored and reused between requests (the authentication will expire '31622400' seconds from the moment the authentication is issued).

Use your access_token by setting the token in the InspiredDeck Configuration. The PHP library will automatically attach this token to each api request (within the current request, each PHP request would need to re-set this token).

\MBLSolutions\InspiredDeck\InspiredDeck::setToken('eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjBmOGMwNDAxZDAy');

Find Code

Before transactions can be issued against product codes, we recommend checking the current state/validity of the code. The search object should be used to issue this request to Inspired Deck. Search criteria should be one of serial, pan, customer or transaction.

\MBLSolutions\InspiredDeck\InspiredDeck::setToken('eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjBmOGMwNDAxZDAy');

$search = new \MBLSolutions\InspiredDeck\Search();

$result = $search->code([
    'serial' => 123456789,
    'pan' => null,
    'customer' => null,
    'transaction' => null,
]);

A successful request will show information about the code.

[   
    'data' => [
        'activation_date' => null,
        'asset' => "Example Gift Card",
        'balance' => 0,
        'created' => "2016-08-31T12:36:34+00:00",
        'currency_code' => "GBP",
        'currency_decimals' => 2,
        'display' => "12345*******6799",
        'expiration_date' => "2021-12-16T00:00:00+00:00",
        'profile' => "Example Codes",
        'serial' => 123456789,
        'sku' => "GIFT_CARD",
        'status' => "active",
        'type' => "physical",
        'updated' => "2019-10-30T11:35:49+00:00",
        'valid_from' => null,
        'valid_to' => null,
    ]
];

Code Transactions

Code transactions can be performed on a number of API objects included within this package (a full list can be located in the src directory e.g. /src/Balance.php).

\MBLSolutions\InspiredDeck\InspiredDeck::setToken('eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjBmOGMwNDAxZDAy');

$search = new \MBLSolutions\InspiredDeck\Credit();

$result = $search->credit([
    'serial' => 12345678,
    'amount' => 1000,
    'reference' => 'TEST-REF-1'
]);

A successful transaction will return updated information about the code (see updated balance).

[   
    'data' => [
        'activation_date' => null,
        'asset' => "Example Gift Card",
        'balance' => 1000,
        'created' => "2016-08-31T12:36:34+00:00",
        'currency_code' => "GBP",
        'currency_decimals' => 2,
        'display' => "12345*******6799",
        'expiration_date' => "2021-12-16T00:00:00+00:00",
        'profile' => "Example Codes",
        'serial' => 123456789,
        'sku' => "GIFT_CARD",
        'status' => "active",
        'type' => "physical",
        'updated' => "2019-10-30T11:35:49+00:00",
        'valid_from' => null,
        'valid_to' => null,
    ]
];

Transaction History

Code transaction history can be obtained using the Transaction History object.

\MBLSolutions\InspiredDeck\InspiredDeck::setToken('eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjBmOGMwNDAxZDAy');

$search = new \MBLSolutions\InspiredDeck\TransactionHistory();

$page = 1;
$limit = 5;

$result = $search->all(12345678, $page, $limit);

Transaction history for the requested code will be returned.

[
    'data' => [
        [
            'action' => "search",
            'action_name' => "Find Code",
            'amount' => 1000,
            'comment' => null,
            'currency_code' => "GBP",
            'currency_decimals' => 2,
            'date' => "2020-10-01T10:40:40+00:00",
            'external_ref' => null,
            'origin_ref' => null,
            'reference' => "TEST-REF-1",
            'reversed' => false,
            'serial' => 123456789,
            'user' => "John Doe"
        ],
        [
            'action' => "search",
            'action_name' => "Find Code",
            'amount' => 0,
            'comment' => null,
            'currency_code' => "GBP",
            'currency_decimals' => 2,
            'date' => "2020-10-01T10:40:33+00:00",
            'external_ref' => null,
            'origin_ref' => null,
            'reference' => "ID-1601548826005",
            'reversed' => false,
            'serial' => 123456789,
            'user' => "John Doe"
        ]
    ]
];

License

Inspired Deck Interface for PHP is free software distributed under the terms of the MIT license.

A contract/subscription to Inspired Deck is required to make use of this package, for more information contact MBL Solutions