tarfin-labs/laravel-pos

dev-master 2023-04-28 12:01 UTC

This package is auto-updated.

Last update: 2024-08-28 14:52:49 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

为使用EST架构的银行提供的Laravel虚拟POS集成。

安装

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

composer require tarfin-labs/laravel-pos

之后,您需要发布config文件和迁移文件

php artisan vendor:publish --provider="TarfinLabs\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)识别相关银行。如果找到的银行在config文件中有定义,则将使用该银行的相关设置。否则,将使用默认银行设置。

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

测试

composer test

变更日志

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

贡献

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

安全

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

致谢

许可

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