Fintecture is a Fintech that has a payment solution via bank transfer available at fintecture.com.
This library is a PHP Client for the Fintecture API.
- PHP >= 7.2
Via Composer, with our Packagist package fintecture/fintecture-sdk-php.
This command will get you up and running quickly with a Guzzle HTTP client (v7).
composer require fintecture/fintecture-sdk-php guzzlehttp/guzzle
The Guzzle client will automatically be found with the help of php-http/discovery
package. If you prefer to specify a custom HTTP client to use, please read the Advanced usage section.
Simple usage looks like:
require_once('vendor/autoload.php');
$state = '<my-uniq-id-for-the-payment>'; // it's my transaction ID, I have to generate it myself, it will be sent back in the callback
$pisClient = new \Fintecture\PisClient([
'appId' => 'app_id',
'appSecret' => 'app_secret',
'privateKey' => 'private_key', // could be a file path or the private key itself
'environment' => 'sandbox' // or 'production'
]);
$pisToken = $pisClient->token->generate();
if (!$pisToken->error) {
$pisClient->setAccessToken($pisToken); // set token of PIS client
} else {
echo $pisToken->errorMsg;
}
$payload = [
'meta' => [
// Info of the buyer
'psu_name' => 'M. John Doe',
'psu_email' => 'john@doe.com',
'psu_address' => [
'street' => '5 Void Street',
'zip' => '12345',
'city' => 'Gotham',
'country' => 'FR'
]
],
'data' => [
'type' => 'SEPA',
'attributes' => [
'amount' => '550.60',
'currency' => 'EUR',
'communication' => 'Commande N°15654'
]
]
];
$connect = $pisClient->connect->generate($payload, $state);
if (!$connect->error) {
$pisClient->redirect($connect->meta->url);
} else {
echo $connect->errorMsg;
}
- 'appId' => 'app_id',
- 'appSecret' => 'app_secret',
- 'privateKey' => 'private_key', // could be a file path or the private key itself
- 'environment' => 'sandbox' // or 'production'
- 'shopName' => 'My super shop', // don't forget to give your client a nice name (even if it's optional)
Some examples (including webhook handling) are available in the examples folder.
We are decoupled from any HTTP messaging client with help by HTTPlug. A list of community provided clients is found here: https://packagist.org/providers/php-http/client-implementation
composer require fintecture/fintecture-sdk-php symfony/http-client nyholm/psr7
To set up the Fintecture client with this HTTP client
use Fintecture\PisClient;
use Symfony\Component\HttpClient\Psr18Client;
$pisClient = new PisClient([$config], new Psr18Client());
These methods follow our API structure.
- token
- generate
- refresh
- account
- get
- accountHolder
- get
- authorize
- generate
- generateDecoupled
- connect
- generate
- customer
- delete
- transaction
- get
- assessment
- get
- connect
- generate
- initiate
- generate
- payment
- get
- refund
- generate
- requestForPayout
- generate
- requestToPay
- generate
- settlement
- get
- application
- get
- functionality
- get
- provider
- get
- testAccount
- get
- PHP
- Git
- Composer
- Make
- Xdebug (for test coverage)
make init
Then you can run the tests:
make test
To generate the test coverage report, you can run this command:
make test-coverage
There are 10 levels (0-9). Level is set in phpstan.neon
.
make analyse
make format
Encountering an issue? Please contact us at developer@fintecture.com.
Fintecture PHP API Client is an open-sourced software licensed under the MIT license.