tarfin-labs / laravel-pos
laravel pos 包
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- guzzlehttp/guzzle: ^7.2
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^6.0|^7.0|^8.0
- phpunit/phpunit: ^9.3|^10.0
This package is auto-updated.
Last update: 2024-08-28 14:52:49 UTC
README
为使用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
启动支付过程。
###支付结果
支付过程完成后或被取消时,相关银行将通过okUrl
和failUrl
参数中指定的地址之一发送相关的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)。请参阅许可文件以获取更多信息。