marcguyer/assembly-callback

Library for interacting with callbacks as sent by Assembly Payments

0.0.3 2017-05-01 17:06 UTC

This package is auto-updated.

Last update: 2024-04-21 19:20:37 UTC


README

Build Status

Assembly Payments Callback Objects

A structured set of objects designed to enable some abstraction handling of Assembly Payments Callback payloads.

Install

composer require assembly-callback

Usage Example

Basic Usage

Basic usage simply instantiates a new Callback object of the type provided by your listener.

use Assembly\Callback;

// get the request body in your preferred way
$requestBody = file_get_contents("php://input");

// use the factory to create an object of the proper type
$callback = Callback\CallbackFactory::factory($requestBody);

With Payload Validation

You may optionally use the validation feature which requires the availability of the stock SDK by default. This uses the id from the callback payload to request the same object from the Assembly API according the the object type.

use Assembly\Callback;
use PromisePay\PromisePay;

// get the request body in your preferred way
$requestBody = file_get_contents("php://input");

// use the factory to create an object of the proper type
$callback = Callback\CallbackFactory::factory($requestBody);

// config the PromisePay client
PromisePay::Configuration()->environment('prelive');
PromisePay::Configuration()->login('<username>');
PromisePay::Configuration()->password('<api key>');

// validate the callback
$callback->validate();

Extend a Callback Type

You may want to add some functionality to an object. To do that, you can define your own type handler.

Example extension

use Assembly\Callback\Transaction;

class MyTransaction extends Transaction
{
    public function someSpecialHandling() {
        // do something extra special
    }
}

Use the extension

use Assembly\Callback;

// get the request body in your preferred way
$requestBody = file_get_contents("php://input");

// when the type is "transactions", use this extention
Callback\CallbackFactory::registerType(
    'transactions',
    'My_Assembly_Callback_Transaction'
);

// use the factory to create an object of the proper type
$callback = Callback\CallbackFactory::factory($requestBody);

Contribute

Pull Requests are encouraged. Learn how