LaravelPackages.net
Acme Inc.
Toggle sidebar
sebastienheyd/laravel-systempay

Systempay (Banque Populaire) form generator for Laravel

1.472
1
1.2.1
About sebastienheyd/laravel-systempay

sebastienheyd/laravel-systempay is a Laravel package for systempay (banque populaire) form generator for laravel. It currently has 1 GitHub stars and 1.472 downloads on Packagist (latest version 1.2.1). Install it with composer require sebastienheyd/laravel-systempay. Discover more Laravel packages by sebastienheyd or browse all Laravel packages to compare alternatives.

Last updated

Systempay form generator for Laravel

Packagist Build Status StyleCI Scrutinizer Code Quality Laravel MIT License

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

  1. Install the package
composer require sebastienheyd/laravel-systempay
  1. 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 :

| name | default value | note | |---|---|---| | currency | 978 | List of currency codes | | payment_config | SINGLE | SINGLE or MULTIPLE | | trans_date | [current datetime] | Generated automaticaly | | page_action | PAYMENT | | | action_mode | INTERACTIVE | | | version | V2 | | | signature | [generated] | Generated automaticaly |

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

Star History Chart