fintecture/fintecture-sdk-php

PHP library for the Fintecture API.

2.6.0 2024-09-30 10:12 UTC

README

Latest Stable Version Total Downloads Monthly Downloads Latest Unstable Version License

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.

Requirements

  • PHP >= 7.2

Quick install

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.

Getting started

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;
}

Available options of Client

  • '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)

Examples

Some examples (including webhook handling) are available in the examples folder.

Advanced usage

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

Using a different HTTP client

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());

Available methods

These methods follow our API structure.

Auth

  • token
    • generate
    • refresh

AIS

  • account
    • get
  • accountHolder
    • get
  • authorize
    • generate
    • generateDecoupled
  • connect
    • generate
  • customer
    • delete
  • transaction
    • get

Customers

  • customers
    • get
    • generate
  • customerBankAccount
    • get
    • generate

PIS

  • assessment
    • get
  • connect
    • generate
  • initiate
    • generate
  • payment
    • get
  • refund
    • generate
  • requestForPayout
    • generate
  • requestToPay
    • generate
  • settlement
    • get

Resources

  • application
    • get
  • functionality
    • get
  • provider
    • get
  • testAccount
    • get

Development

Requirements

  • PHP
  • Git
  • Composer
  • Make
  • Xdebug (for test coverage)

Initialize project for development

make init

PHPUnit (Unit Tests)

Then you can run the tests:

make test

To generate the test coverage report, you can run this command:

make test-coverage

PHPStan (Static Analysis)

There are 10 levels (0-9). Level is set in phpstan.neon.

make analyse

PHP CS Fixer (Coding Standards)

make format

Troubleshooting

Encountering an issue? Please contact us at developer@fintecture.com.

License

Fintecture PHP API Client is an open-sourced software licensed under the MIT license.