webgriffe / payum-lock-request-extension
一个提供锁定并发请求能力的 Payum 扩展。
0.1.0
2023-10-17 10:20 UTC
Requires
- php: ^8.0
- payum/core: ^1.7
- symfony/lock: ^6.0
Requires (Dev)
- pds/skeleton: ^1.0
- php-http/discovery: ^1.19
- phpunit/phpunit: ^9.0 || ^10.0
- symplify/easy-coding-standard: ^12.0
This package is auto-updated.
Last update: 2024-09-27 16:51:26 UTC
README
一个提供锁定并发请求能力的 Payum 扩展
此扩展提供了锁定 Payum 网关并发请求的能力(例如,当支付服务提供商在同一时刻发送通知操作和传统捕获操作时)。它使用 Symfony 锁组件 来提供一个简单且可靠的锁定机制。
安装
composer require webgriffe/payum-lock-request-extension
用法
<?php // Use your preferred \Symfony\Component\Lock\PersistingStoreInterface implementation $persistingStore = new Symfony\Component\Lock\Store\SemaphoreStore(); $lockFactory = new \Symfony\Component\Lock\LockFactory($persistingStore); $lockRequestExtension = new \Webgriffe\PayumLockRequestExtension\LockRequestExtension( $lockFactory, 'my_lock_prefix', // Optional, default value is 'webgriffe_payum_lock_request_extension' 30.0, // Optional, default value is 30.0 true // Optional, default value is true ); /** @var \Payum\Core\Gateway $gateway */ $gateway->addExtension($lockRequestExtension); // here the extension will be called to wrap the execute acton in a lock $gateway->execute(new FooRequest);
配置
扩展可以使用以下选项进行配置
- 锁定前缀:为确保锁定键的唯一性,默认值为
webgriffe_payum_lock_request_extension
。 - 锁定 TTL:锁定可以保持的最大时间(秒),默认值为
30
。 - 锁定自动释放:当锁定实例被销毁时,是否释放锁定,默认值为
true
。