rdtvaacar/laravel-pos

laravel pos 包

dev-master 2021-02-20 12:13 UTC

This package is auto-updated.

Last update: 2024-09-20 20:05:55 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

适用于使用EST架构的银行的Laravel虚拟POS集成。

安装

您可以使用以下命令通过composer轻松添加laravel-pos包:

composer require rdtvaacar/laravel-pos

之后,您需要发布配置文件和迁移文件。

php artisan vendor:publish --provider="Rdtvaacar\LaravelPos\LaravelPosServiceProvider"

要完成配置,请在config文件中定义所需的银行信息,并将其添加到.env文件中,如下所示:

LARAVEL_POS_XXXXX_BASE_URL=
LARAVEL_POS_XXXXX_MERCHANT_ID=
LARAVEL_POS_XXXXX_STORE_KEY=
LARAVEL_POS_XXXXX_BANK_NAME=

对于默认银行配置,您需要在.env文件中定义以下变量。

LARAVEL_POS_DEFAULT_BANK=`BANK_CONFIG_KEY_IN_CONFIG_FILE`

示例配置

return [
    'currency' => env('LARAVEL_POS_CURRENCY', 949),
    'locale' => env('LARAVEL_POS_LOCALE','tr'),
    'default_bank' => env('LARAVEL_POS_DEFAULT_BANK',''),//banks dizisindeki key
    'bin_file_path' => env('LARAVEL_POS_BIN_FILE_PATH', 'resources/bin.json'),
    'banks' => [
        'ZİRAAT BANKASI' => [
            'name' => env('LARAVEL_POS_ZIRAAT_BANK_NAME',''),//bin dosyasındaki banka adı
            'base_url' => env('LARAVEL_POS_ZIRAAT_BASE_URL',''),
            'merchant_id' => env('LARAVEL_POS_ZIRAAT_MERCHANT_ID', ''),
            'store_key' => env('LARAVEL_POS_ZIRAAT_STORE_KEY', ''),
        ]
    ]
];

####重要信息 banks -> ZİRAAT BANKASI -> name的值必须与bin文件中的银行名称相匹配。

使用

$card = new Card('Kart No', 'YY', 'MM', 'CV2', 'Kart Üzerindeki İsim');
$orderId = Str::random();//Benzersiz sipariş numarası
$tutar = 20;//TL
$taksit = 1;
$order = new Order($orderId, $tutar, $taksit);
$paymentBuilder = LaravelPos::builder();
$paymentBuilder->bank('ZİRAAT BANKASI')
                    ->card($card)
                    ->order($order)
                    ->okUrl('http://odeme.siteadresi.com/ok')
                    ->failUrl('http://odeme.siteadresi.com/fail')

要添加额外的请求信息(如客户ID、电子邮件地址等),请创建一个Customer对象并将其传递给$paymentBuilder对象。

new Customer([
    'id' => 1,
    'email': 'foo@bar.com',
    'foo': 'bar'
]);

$paymentBuilder->customer($customer);

创建的Customer对象中的信息将被添加到发送的HTTP请求中。

##接收支付

$paymentBuilder->charge();

使用method启动支付流程。

###支付结果

支付操作完成后或被取消时,相关银行会向在okUrlfailUrl参数中指定的地址之一发送关于操作的POST请求。

要记录支付操作的结果,您需要将Billable trait添加到您使用的User模型中。

添加trait后;

$user = User::find(1);
$user->handlePayment(request()->all());

支付结果将被记录到数据库中。

###附加信息

  • LaravelPos包仅支持通过3d-pay方法接收支付。

  • 如果没有指定Bank()参数,则相关银行将根据输入的信用卡前6位数字(Bin Number)识别。如果找到的银行在配置文件中定义,则将使用该银行的相关设置(支付将从该银行扣除)。否则,将使用默认银行设置。

  • 如果您拥有更新的BIN列表,您可以从.env文件中更改BIN文件路径。(LARAVEL_POS_BIN_FILE_PATH)

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过hakanozdemirr@gmail.com发送电子邮件,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。