restoore/laravel-systempay

轻松创建systempay支付表单。

1.0.2 2019-01-27 16:27 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:14:40 UTC


README

Package Laravel Release Packagist MIT License

它的用途是什么?

该库提供了一种简单快速创建systempay表单的方法。它帮助实例化所有必需的参数并创建表单以访问支付界面。要了解必需的参数,请访问https://systempay.cyberpluspaiement.com/html/documentation.html

安装

首先,您需要将组件添加到您的composer.json文件中

composer require restoore/laravel-systempay

使用composer update更新您的包或使用composer install安装。执行php artisan vendor:publish --provider="Restoore\Systempay\SystempayServiceProvider"命令以将systempay.php配置文件复制到您的环境中

更新composer后,将ServiceProvider添加到config/app.php文件中的providers数组

对于Laravel >= 5.1

  'providers' => [
      ...
      Restoore\Systempay\SystempayServiceProvider::class,
  ]

对于Laravel 5.0

  'providers' => [
      ...
      Restoore\Systempay\SystempayServiceProvider,
  ]

对于Laravel >= 5.5

这是自动完成的,感谢xmoroccan为此更新

配置

默认情况下,该包附带一个示例配置文件:config/systempay.php

return [

    'YOUR_SITE_ID' => [
        'key' => 'YOUR_KEY',
        'env' => 'PRODUCTION',
        'params' => [
            //Put here your generals payment call parameters
            'vads_page_action' => 'PAYMENT',
            'vads_action_mode' => 'INTERACTIVE',
            'vads_payment_config' => 'SINGLE',
            'vads_page_action' => 'PAYMENT',
            'vads_version' => 'V2',
            'vads_currency' => '978'
        ]
    ],
    //Systempay's url
    'url' => 'https://paiement.systempay.fr/vads-payment/',

];

在此文件中,您需要填写您的site_idkey。这两个参数由Systempay提供。如您所见,您可以为多个商店创建配置数组。在此数组中,您还可以放置您的交易的一般参数。

测试环境

如果您在测试环境中运行应用程序,您可以使用.env文件覆盖keyenv参数

使用以下常量名称:SYSTEMPAY_<SITE_ID>KEY和SYSTEMPAY<SITE_ID>_ENV

创建支付表单

现在我们终于可以使用该包了!以下是一个简短的代码示例,说明其工作原理

    //create a Systempay object class with your site id in parameter. Note that it will automatically get your configuration in config/systempay.php
   $systempay = App::make('systempay', ['site_id' => '11111']);
    //add some parameters
    $systempay->set_amount(1500)
        ->set_trans_id(1112441)
        ->set_order_info2('New customer !');
    //create the signature
    $systempay->set_signature();
    //create html systempay call form
    $payment_form = $systempay->get_form('<button class="btn btn-lg btn-primary btn-payment" type="submit">Valider et payer</button>');

您需要了解此代码的哪些内容

  1. 您可以使用访问器获取和设置所有Systempay参数
  2. 所有setter都是可链式函数
  3. 签名将自动计算并放入参数数组。在提供所有参数之前不要使用此函数。
  4. get_form函数接受您想要显示的表单按钮作为参数。不要忘记使用{!! !!}将变量包围在您的视图中。

其他有用函数

add_product

将产品添加到订单中

参数

array $product,必须具有以下键:'label,amount,type,ref,qty

示例

    $systempay = App::make('systempay', ['site_id' => '11111']);
    $systempay->add_product(
        [
            'label' => 'Concert Coldplay 2016',
            'amount' => 235.00,
            'type' => 'ENTERTAINMENT',
            'ref' => 'COLD016',
            'qty' => 3
        ]
    );

注意:每个产品的价格金额不得乘以100

set_amount

定义订单的总金额。如果您没有在参数中提供金额,它将自动通过您篮子中的产品总和来计算。

参数

[可选] int $amount,systempay格式。例如:对于一个价格为150€的产品,提供15000

示例

   $systempay = App::make('systempay', ['site_id' => '11111']);
   $systempay->add_product(
       [
           'label' => 'Concert Coldplay 2016',
           'amount' => 235.00,
           'type' => 'ENTERTAINMENT',
           'ref' => 'COLD016',
           'qty' => 3
       ]
   );
   $systempay->set_amount();
   echo $systempay->get_amount(); //will display 705.00 (3*235.00)

get_amount

获取订单的总金额

参数

[可选] bool $decimal如果为true,您将得到小数,否则您将得到标准systempay金额格式(int)。默认值为true。

示例

  $systempay = App::make('systempay', ['site_id' => '11111']);
  $systempay->add_product(
      [
          'label' => 'Concert Coldplay 2016',
          'amount' => 235.00,
          'type' => 'ENTERTAINMENT',
          'ref' => 'COLD016',
          'qty' => 3
      ]
  );
  $systempay->set_amount();
  echo $systempay->get_amount(); //will display 705.00 (3*235.00)
  echo $systempay->get_amount(false); //will display 70500 (3*235.00)

set_params

进行大量参数赋值的方法

参数

array $params Systempay参数的关联数组

示例

   $systempay = App::make('systempay', ['site_id' => '11111']);
   $systempay->set_params(
       [
           'vads_page_action' => 'PAYMENT',
           'vads_action_mode' => 'INTERACTIVE',
           'vads_payment_config' => 'SINGLE',
           'vads_page_action' => 'PAYMENT',
           'vads_version' => 'V2',
           'vads_trans_date' => gmdate('YmdHis'),
           'vads_currency' => '978'
       ]
   );