damianjozwiak / laravel-przelewy24
Laravel przelewy24.pl 集成
Requires
- php: ^7.3|^8.0
- guzzlehttp/guzzle: ^6.2|^7.0
- laravel/framework: ^6.0|^7.0|^8.0
- mockery/mockery: ^1.4
Requires (Dev)
- orchestra/testbench: ^6.13
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-12 14:17:26 UTC
README
本模块简化了与 przelewy24.pl 支付系统的集成。它支持使用 przelewy24.pl 系统进行支付。
安装
-
在控制台中运行
composer require damianjozwiak/laravel-przelewy24
安装此模块
在
providers
部分中 -
在控制台中运行
php artisan vendor:publish --provider="Damianjozwiak\Transfers24\Providers\Transfers24ServiceProvider"
在您的控制台中发布默认配置文件
-
打开
.env
并添加您的配置
PRZELEWY24_MERCHANT_ID
- 与 Przelewy24 签订合同的公司或个人编号(商户ID),PRZELEWY24_POS_ID
- 店铺的识别号(默认:商户ID)PRZELEWY24_CRC
- 用于计算 CRC 值的随机字符串,在 Przelewy24 管理面板中显示。PRZELEWY24_TEST_SERVER
- 如果为真,设置测试环境PRZELEWY24_URL_RETURN
- 完成交易后,客户端将被重定向到的返回地址(默认 'transfers24/callback')。PRZELEWY24_URL_STATUS
- 交易状态发送到的地址。如果存储在 P24 系统中,则可以省略(默认 'transfers24/status')。
使用方法
为了使用该系统,您需要做几件事
-
您需要启动注册请求以初始化支付
-
您需要处理客户返回到您的应用程序的路线。默认情况下,有路线 'transfers24/callback'
-
您应该确保交易验证。在这里,您应该在收到支付系统关于正确交易的通知后发送支付验证请求。您需要处理支付系统自动发送到交易状态的返回路线。默认情况下,有路线 'transfers24/status'
注册请求
这是您需要启动以初始化支付的请求。
授权请求的基本示例代码可能如下所示
$payment = app()->make(\App\Payment::class); $registration_request = app()->make(\Damianjozwiak\Transfers24\Requests\Transfers24::class); $register_payment = $registration_request->setEmail('test@example.com')->setAmount(100)->setArticle('Article Name')->init(); if($register_payment->isSuccess()) { // save registration parameters in payment object return $registration_request->execute($register_payment->getToken(), true); }
此代码应在控制器中运行,因为它返回将包含一些内容的响应。
-
注册支付状态
-
如果注册成功,则返回令牌
-
支付系统返回的错误代码
-
支付系统返回的错误信息
-
发送到支付系统的请求参数
对于 setAmount
,默认货币为 PLN。如果您想使用其他货币,应使用来自 \Devpark\Transfers24\Currency
类的货币常量作为第二个参数。请注意,您应该提供给此函数的金额是实际金额(带有小数位),而不是已转换为 Przelewy24 格式。
对于 \Damianjozwiak\Transfers24\Requests\Transfers24::execute
方法的第二个参数,如果为 true,则决定重定向到支付系统,如果为 false,则决定返回进行支付的 URL
定义客户返回路线
您应该创建在完成交易后重定向客户的路线(这些路线将使用 GET
HTTP 方法启动),
处理交易验证路线
为了确保支付确实成功,您应使用 \Damianjozwiak\Transfers24\Requests\Transfers24::receive
方法。最简单的代码可能如下所示
$payment_verify = app()->make(\Damianjozwiak\Transfers24\Requests\Transfers24::class); $payment_response = $payment_verify->receive($request); if ($payment_response->isSuccess()) { $payment = Payment::where('session_id',$payment_response->getSessionId())->firstOrFail(); // process order here after making sure it was real payment } echo "OK";
此代码应在控制器中运行,因为您应在接收到有效的 przelewy24 交易验证请求时返回非空响应。如您所见,您应在处理订单之前确保这是真实支付,然后您需要确保它已成功。您可以通过会话 ID(在支付注册期间生成的唯一 ID)识别支付。
许可证
本软件包受 MIT 许可证 的许可。