sebastienheyd / laravel-systempay
Systempay (Banque Populaire) form generator for Laravel
Installs: 1 017
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: >=7.2.0
- laravel/framework: >=5.7
Requires (Dev)
- orchestra/testbench: >=3.8
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-10-29 05:46:45 UTC
README
Features
- Fast and easy form generation for Systempay (by Banque Populaire)
- Support multiple site id for multiple stores within the same project
- Support sha1 and hmac-sha-256
- Blade extension for more flexibility
Installation
- Install the package
composer require sebastienheyd/laravel-systempay
- Publish the config file
php artisan vendor:publish --provider="Sebastienheyd\Systempay\SystempayServiceProvider"
Configuration
After publishing edit the default configuration file : config/systempay.php
return [ 'default' => [ 'site_id' => 'YOUR_SITE_ID', 'key' => env('SYSTEMPAY_SITE_KEY', 'YOUR_KEY'), 'env' => env('SYSTEMPAY_ENV', 'PRODUCTION'), ] ];
You need to set YOUR_SITE_ID
and YOUR_KEY
with your own values. This two values are given by Systempay.
Hashing algorithms
By default, the package will use hmac-sha-256 to generate the signature. To use sha1 you need to set algo
to sha1
in the configuration :
return [ 'default' => [ // ... 'algo' => 'sha1' ] ];
Specific parameters
These parameters are set by default :
Also see Systempay documentation
NB : you don't have to add the vads_
prefix to parameters, the prefix will be automaticaly added.
But you can also set the parameters with the vads_
prefix, it will be automaticaly removed.
There is also possible to set some specific parameters to a configuration by setting params
values.
Example :
return [ 'default' => [ // ... 'params' => [ 'currency' => '826' ] ] ];
In this case, default configuration will use the currency code 826.
Additional configuration
You can add as many configuration as you need by adding a new key to the configuration file.
For example :
return [ 'default' => [ // ... ], 'store_uk' => [ 'site_id' => '123456', 'key' => env('SYSTEMPAY_UK_SITE_KEY', '12345678'), 'env' => env('SYSTEMPAY_UK_ENV', 'PRODUCTION'), 'algo' => 'sha256' ] ];
To use another configuration, call the config
method, for example :
$systemPay = Systempay::config('store_uk')->set([ 'amount' => 12.34, 'trans_id' => 123456 ]);
Usage
In your controller :
<?php namespace App\Http\Controllers; use Systempay; // Facade class PaymentController extends Controller { public function payment() { $systemPay = Systempay::set([ 'amount' => 12.34, 'trans_id' => 123456 ]); return view('payment', compact('systemPay')); } }
In your view
{!! $systemPay->render('<button type="submit" class="btn">Payment</button') !!}
Or with the Blade extension :
@systempay <button class="btn btn-lg btn-success">Payment</button> @endsystempay
NB : With the Blade extension, if your variable name passed to the view is not $systemPay
you need to
set it like this :
@systempay('paymentData')
In this example it will use $paymentData
instead of $systemPay