marcguyer / assembly-callback
Library for interacting with callbacks as sent by Assembly Payments
0.0.3
2017-05-01 17:06 UTC
Requires
- php: ^5.3 || ^7.0
- zendframework/zend-json: ^2.2
Requires (Dev)
- phpunit/phpunit: ^4.0
Suggests
- promisepay/promisepay-php: Used for roundtrip API call to validate callback payloads
This package is auto-updated.
Last update: 2024-10-21 20:46:44 UTC
README
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