From Wikitech

CiviCRM Extension

We have written an extension in CiviCRM to use the SmashPig library to charge recurring payments. It currently supports credit cards via Ingenico and Adyen, and iDEAL and Apple Pay via Adyen.

The SmashPig extension has a settings menu in the Civi UI:

Administer -> System Settings -> SmashPig Settings

Here you can switch the extension to either use queues or directly insert the donation. In production we always want to use queues so that the charge job doesn't conflict with the donation queue consumer for table access, and so that any special data munging we apply in the queue consumer is applied consistently.

The extension defines a CiviCRM PaymentProcessor implementation (limited to only charging recurring installments) and a job that can be run via the CiviCRM.

Running the recurring job with 1 donation

drush @wmff -vv cvapi job.process_smashpig_recurring batch_size=1

Running with a specific recurring_id

drush @wmff -vv cvapi job.process_smashpig_recurring contribution_recur_id=12345

Runing through run job (if on prod, always use this instead of above two since we do not want deadlock), this will call the process control script and create a log file

run-job -j recurring_smashpig_charge --slow-start