virementmaitrise / virementmaitrise-sdk-php
PHP library for the Virement Maîtrisé API.
Installs: 36
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/virementmaitrise/virementmaitrise-sdk-php
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- php-http/discovery: *
- php-http/message: *
- psr/http-client: *
- psr/http-client-implementation: *
- psr/http-factory: *
Requires (Dev)
- ext-dom: *
- ext-zip: *
- guzzlehttp/psr7: ^2
- mikey179/vfsstream: ^1.6
- php-http/mock-client: *
- phpstan/phpstan: ^1
- phpunit/phpunit: ^8 || ^9 || ^10 || ^11
README
Virement Maîtrisé is providing a payment solution via bank transfer. Find more at https://www.virementmaitrise.societegenerale.eu/.
This library is a PHP Client for the Virement Maîtrisé API.
Requirements
- PHP >= 7.2
Quick install
Via Composer, with our Packagist package virementmaitrise/virementmaitrise-sdk-php.
This command will get you up and running quickly with a Guzzle HTTP client (v7).
composer require virementmaitrise/virementmaitrise-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 virementmaitrise/virementmaitrise-sdk-php symfony/http-client nyholm/psr7
To set up the Virement Maîtrisé 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
- generate
- get
- 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 our support (where you purchased your license).
License
Virement Maîtrisé PHP API Client is an open-sourced software licensed under the MIT license.