For the complete documentation index, see llms.txt. This page is also available as Markdown.

Custom Action

Gateway comes with built in actions but sometime you have to add your own. First you have to define a service:

# src/Acme/PaymentBundle/Resources/config/services.yml

services:
    acme.payum.action.foo:
        public: true
        class: Acme\PaymentBundle\Payum\Action\FooAction

There are several ways to add it to a gateway:

  • Set it explicitly in config.yml.

    # app/config/config.yml
    
    payum:
        gateways:
            a_gateway:
                factory: a_factory:
                payum.action.foo: @payumActionServiceId
  • Tag it

    More powerful method is to add a tag payum.action to action server. Payum will do the reset. You can define a factory attribute inside that tag. In this case the action will be added to all gateways created by requested factory.

    # app/config/config.yml
    
    payum:
        gateways:
            a_gateway:
                factory: a_factory
    # src/Acme/PaymentBundle/Resources/config/services.yml
    
    services:
        acme.payum.action.foo:
            class: Acme\PaymentBundle\Payum\Action\FooAction
            public: true
            tags:
                - { name: payum.action, factory: a_factory }
    

    If prepend set to true the action is added before the rest. If you want to add the action to all configured gateways set all to true.

    # src/Acme/PaymentBundle/Resources/config/services.yml
    
    services:
        acme.payum.action.foo:
            class: Acme\PaymentBundle\Payum\Action\FooAction
            public: true
            tags:
                - {name: payum.action, prepend: true, all: true }

Supporting Payum

Payum is an MIT-licensed open source project with its ongoing development made possible entirely by the support of community and our customers. If you'd like to join them, please consider:

Last updated