lukasz-adamski / laravel-przelewy24
Przelewy24支付处理器服务提供商,用于Laravel框架。
0.2
2019-09-22 14:21 UTC
Requires
- guzzlehttp/guzzle: ^6.3
- illuminate/support: ^6.0
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-23 01:14:21 UTC
README
Laravel包,提供Przelewy24支付处理器支持。
安装
- 使用以下命令安装composer包
composer require lukasz-adamski/laravel-przelewy24
- 在
config/app.php
中添加服务提供者
Adams\Przelewy24\Przelewy24ServiceProvider::class,
- 在
config/app.php
中添加外观
'Przelewy24' => Adams\Przelewy24\Facades\Facade::class,
- 将配置文件发布到您的项目中
php artisan vendor:publish --provider="Adams\Przelewy24\Przelewy24ServiceProvider"
- 如果您启用了
package_routes
设置,您需要在app/Http/Middleware/VerifyCsrfToken.php
中排除/webhook/przelewy24
路由的CSRF验证
/** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ '/webhook/przelewy24' ];
环境
您可以设置以下环境变量来配置Przelewy24 API访问
PRZELEWY24_MODE
- 当前API模式,默认设置为sandbox
以测试实现。在生产环境中,您需要将此值设置为live
,PRZELEWY24_MERCHANT_ID
- 您从支付服务提供商收到的商户标识符,PRZELEWY24_POS_ID
- 用于处理支付的商店标识符。如果您不想处理指定商店的进件支付,请在此处输入商户标识符,支付将不会归类到任何商店,PRZELEWY24_CRC
- 从支付服务提供商收到的用于签名API请求的随机字符串。
测试
要运行预定义的测试集,请使用
php vendor/bin/phpunit
用法
下面提供了一个示例控制器实现
<?php namespace App\Http\Controllers; use Przelewy24; use Adams\Przelewy24\Transaction; use App\Http\Controllers\Controller; use Illuminate\Support\Str; class ExampleController extends Controller { /** * Redirect user to payment provider. * * @return Response */ public function pay() { $payload = new Transaction(); $payload->setSessionId(Str::random(30)); $payload->setAmount($item->price * 100); $payload->setDescription('My item description'); $payload->setEmail('customer@example.com'); $payload->setUrlReturn(url('/')); return Przelewy24::redirect($payload); } }
事件
当启用此包的接收者(package_routes
设置)时,您可以监听默认webhook控制器发出的预定义事件
\Adams\Przelewy24\Events\TransactionReceived::class
- 交易成功接收(签名有效)。如果您不使用自动验证,则需要手动进行验证以收取预付费金,\Adams\Przelewy24\Events\TransactionVerified::class
- 交易成功接收并通过提供商的API验证。在分发此事件后,预付费金已添加到您的账户。
示例
- 以下可以看到使用
php artisan make:listener ReceivePayment
创建的TransactionVerified
事件监听器的示例代码
<?php namespace App\Listeners; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Adams\Przelewy24\Events\TransactionVerified; class ReceivePayment { /** * Create the event listener. * * @return void */ public function __construct() { // } /** * Handle the event. * * @param TransactionVerified $event * @return void */ public function handle(TransactionVerified $event) { // } }
- 您还需要在
app/Providers/EventServiceProvider.php
文件中注册新的监听器。
/** * The event listener mappings for the application. * * @var array */ protected $listen = [ \Adams\Przelewy24\Events\TransactionVerified::class => [ \App\Listeners\ReceivePayment::class, ], ];