sebastienheyd/laravel-systempay

Laravel的Systempay(Banque Populaire)表单生成器

1.2.1 2020-09-29 06:47 UTC

This package is auto-updated.

Last update: 2024-08-29 05:06:35 UTC


README

Packagist Build Status StyleCI Scrutinizer Code Quality Laravel MIT License

特性

  • 为Systempay(Banque Populaire)提供快速简便的表单生成
  • 支持同一项目内多个商店的多站点ID
  • 支持sha1和hmac-sha-256
  • Blade扩展以提供更多灵活性

安装

  1. 安装包
composer require sebastienheyd/laravel-systempay
  1. 发布配置文件
php artisan vendor:publish --provider="Sebastienheyd\Systempay\SystempayServiceProvider"

配置

发布后,编辑默认配置文件:config/systempay.php

return [
    'default' => [
        'site_id' => 'YOUR_SITE_ID',
        'key'     => env('SYSTEMPAY_SITE_KEY', 'YOUR_KEY'),
        'env'     => env('SYSTEMPAY_ENV', 'PRODUCTION'),
    ]
];

您需要使用自己的值设置YOUR_SITE_IDYOUR_KEY。这两个值由Systempay提供。

哈希算法

默认情况下,该包将使用hmac-sha-256生成签名。要使用sha1,您需要在配置中将algo设置为sha1

return [
    'default' => [
        // ...
        'algo'    => 'sha1'
    ]
];

特定参数

这些参数默认设置

另请参阅Systempay文档

注意:您不需要为参数添加vads_前缀,前缀将被自动添加。但您也可以使用vads_前缀设置参数,它将被自动删除。

还可以通过设置params值来为配置设置一些特定参数。

示例

return [
    'default' => [
        // ...
        'params'  => [
            'currency' => '826'
        ]
    ]
];

在这种情况下,默认配置将使用货币代码826。

附加配置

您可以通过向配置文件添加新键来添加所需数量的配置。

例如

return [
    'default' => [
       // ...
    ],
    'store_uk' => [
        'site_id' => '123456',
        'key'     => env('SYSTEMPAY_UK_SITE_KEY', '12345678'),
        'env'     => env('SYSTEMPAY_UK_ENV', 'PRODUCTION'),
        'algo'    => 'sha256'        
    ]
];

要使用另一个配置,请调用config方法,例如

$systemPay = Systempay::config('store_uk')->set([
    'amount' => 12.34,
    'trans_id' => 123456
]);

使用方法

在您的控制器中

<?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'));
    }
}

在您的视图中

{!! $systemPay->render('<button type="submit" class="btn">Payment</button') !!}

或使用Blade扩展

@systempay
    <button class="btn btn-lg btn-success">Payment</button>
@endsystempay

注意:使用Blade扩展时,如果传递给视图的变量名称不是$systemPay,您需要将其设置为以下格式

@systempay('paymentData')

在此示例中,它将使用$paymentData而不是$systemPay