Prioritize PaymentRequest

This commit is contained in:
Francis Hilaire 2024-09-16 22:27:17 +02:00
parent 2dd6cf5035
commit dbdd226419
No known key found for this signature in database
GPG key ID: 3392F830BF33D421
5 changed files with 42 additions and 19 deletions

View file

@ -2,9 +2,27 @@ imports:
- { resource: "services_test_cached.yaml" }
services:
##
# Prioritize Payum by tagging services with a higher priority (or lower for tagged_iterator).
##
'sylius.payment_request.command_provider.payum.offline':
class: Sylius\Bundle\CoreBundle\PaymentRequest\CommandProvider\ActionsCommandProvider
arguments:
- !tagged_locator { tag: 'sylius.payment_request.command_provider.payum.offline', index_by: 'action' }
tags:
- { name: 'sylius.payment_request.command_provider', gateway-factory: 'offline', priority: -200 }
- { name: 'sylius.payment_request.command_provider', gateway-factory: 'offline', priority: -100 }
'sylius.shop.order_pay.provider.pay_response.payum':
parent: Sylius\Bundle\CoreBundle\OrderPay\Provider\PayumPayResponseProvider
arguments:
- '@sylius.shop.resolver.payment_to_pay'
tags:
- { name: 'sylius.shop.order_pay.provider.pay_response', priority: -150 }
'sylius.shop.order_pay.provider.after_pay_response.payum':
parent: Sylius\Bundle\CoreBundle\OrderPay\Provider\PayumAfterPayResponseProvider
arguments:
- '@sylius.shop.order_pay.handler.payment_state_flash'
tags:
- { name: 'sylius.shop.order_pay.provider.after_pay_response', priority: -50 }

View file

@ -20,7 +20,7 @@
<service id="sylius.payment_request.command_provider.payum.offline" class="Sylius\Bundle\CoreBundle\PaymentRequest\CommandProvider\ActionsCommandProvider">
<argument type="tagged_locator" tag="sylius.payment_request.command_provider.payum.offline" index-by="action" />
<tag name="sylius.payment_request.command_provider" gateway-factory="offline" />
<tag name="sylius.payment_request.command_provider" gateway-factory="offline" priority="100" />
</service>
<service id="sylius.payment_request.command_provider.payum.offline.capture" class="Sylius\Bundle\CoreBundle\PaymentRequest\CommandProvider\Payum\CaptureCommandProvider">

View file

@ -16,6 +16,8 @@
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"
>
<services>
<defaults public="true" />
<service id="sylius.payment_request.offline.capture" class="Sylius\Bundle\CoreBundle\PaymentRequest\CommandHandler\Offline\CapturePaymentRequestHandler">
<argument type="service" id="Sylius\Bundle\CoreBundle\PaymentRequest\Provider\PaymentRequestProviderInterface" />
<argument type="service" id="Sylius\Bundle\CoreBundle\PaymentRequest\Processor\Offline\CaptureProcessorInterface" />

View file

@ -16,9 +16,11 @@
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"
>
<services>
<defaults public="true" />
<service id="sylius.payment_request.command_provider.offline" class="Sylius\Bundle\CoreBundle\PaymentRequest\CommandProvider\ActionsCommandProvider">
<argument type="tagged_locator" tag="sylius.payment_request.command_provider.offline" index-by="action" />
<tag name="sylius.payment_request.command_provider" gateway-factory="offline" priority="-100" />
<tag name="sylius.payment_request.command_provider" gateway-factory="offline" />
</service>
<service id="sylius.payment_request.command_provider.offline.capture" class="Sylius\Bundle\CoreBundle\PaymentRequest\CommandProvider\Offline\CapturePaymentRequestCommandProvider">

View file

@ -17,6 +17,7 @@
>
<services>
<defaults public="true" />
<service id="sylius.shop.order_pay.provider.after_pay_url" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\AfterPayUrlProvider">
<argument type="string">%sylius_shop.order_pay.after_pay_route%</argument>
@ -32,35 +33,35 @@
<!-- Pay -->
<service id="sylius.shop.order_pay.provider.pay_response.payment_request" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\PaymentRequestPayResponseProvider">
<argument type="service" id="sylius.shop.resolver.payment_to_pay" />
<argument type="service" id="sylius.shop.order_pay.provider.after_pay_url" />
<tag name="sylius.shop.order_pay.provider.pay_response" priority="-300" />
</service>
<service id="sylius.shop.order_pay.provider.pay_response.payum" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\PayumPayResponseProvider">
<argument type="service" id="sylius.shop.resolver.payment_to_pay" />
<tag name="sylius.shop.order_pay.provider.pay_response" priority="-200" />
</service>
<service id="sylius.shop.order_pay.provider.pay_response.no_payment" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\NoPaymentPayResponseProvider">
<argument type="service" id="sylius.shop.resolver.payment_to_pay" />
<argument type="service" id="sylius.shop.order_pay.provider.final_url" />
<tag name="sylius.shop.order_pay.provider.pay_response" priority="-100" />
</service>
<!-- After pay -->
<service id="sylius.shop.order_pay.provider.after_pay_response.payum" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\PayumAfterPayResponseProvider">
<argument type="service" id="sylius.shop.order_pay.handler.payment_state_flash" />
<tag name="sylius.shop.order_pay.provider.after_pay_response" priority="-100" />
<service id="sylius.shop.order_pay.provider.pay_response.payment_request" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\PaymentRequestPayResponseProvider">
<argument type="service" id="sylius.shop.resolver.payment_to_pay" />
<argument type="service" id="sylius.shop.order_pay.provider.after_pay_url" />
<tag name="sylius.shop.order_pay.provider.pay_response" priority="-200" />
</service>
<service id="sylius.shop.order_pay.provider.pay_response.payum" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\PayumPayResponseProvider">
<argument type="service" id="sylius.shop.resolver.payment_to_pay" />
<tag name="sylius.shop.order_pay.provider.pay_response" priority="-300" />
</service>
<!-- After pay -->
<service id="sylius.shop.order_pay.provider.after_pay_response.payment_request" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\PaymentRequestAfterPayResponseProvider">
<argument type="service" id="sylius.shop.order_pay.handler.payment_state_flash" />
<argument type="service" id="sylius.shop.order_pay.provider.final_url" />
<tag name="sylius.shop.order_pay.provider.after_pay_response" priority="-100" />
</service>
<service id="sylius.shop.order_pay.provider.after_pay_response.payum" parent="Sylius\Bundle\CoreBundle\OrderPay\Provider\PayumAfterPayResponseProvider">
<argument type="service" id="sylius.shop.order_pay.handler.payment_state_flash" />
<tag name="sylius.shop.order_pay.provider.after_pay_response" priority="-200" />
</service>
</services>
</container>