Answers.Body: <p>What version of CiviCRM are you on? It should work on the latest 4.7  - &amp; it's working for me (I'm using latest of github) - but there might be something more or less forgiving in the config</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-01T17:43:40.503Z
Answers.Text: I forgot to post back that yes - I hadn't realized I had a CiviCRM/Omnipay version mismatch.  This is the correct solution :)
Answers.UserDisplayName: Jon G - Megaphone Tech
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-12-08T22:31:48.387Z
Answers.LastActivityDate: 2017-12-08T22:31:48.387Z
Answers.UserDisplayName: user4278
Answers.Body: <p>The below works for me in case that points to anything that might help you</p>
  
  <pre><code>drush cvapi PaymentProcessor.getmissing sequential=1 is_recur=1 payment_processor_id=9 start_date_time="2018-01-08" end_date_time="2018-01-09" contribution_status_id=1 lazy_logging=1
  </code></pre>
  
  <p>followed eg by </p>
  
  <pre><code> cvapi PaymentProcessor.retrymissing start_date_time=2017-03-01 end_date_time=2017-04-01 payment_processor_id=9 contribution_status_id=1 is_recur=1
  </code></pre>
  
  <p>Note: grab the latest code of lazy logging doesnt' work for you (output table format)</p>
  
  <p>Warning: the above are in use on site that has multiple a.net processors involved so has extra parameters to cope with that</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-28T23:21:51.573Z
Answers.LastActivityDate: 2018-02-28T23:21:51.573Z
Answers.UserDisplayName: petednz - fuzion
Body: <p>I was told that I could use the Omnipay processor to detect missing payments.</p>
  
  <p>I've determined that I need the API action <code>PaymentProcessor.getmissing</code>, and I can call this with: <code>wp cv api PaymentProcessor.getmissing payment_processor_id=7</code>.  However, when I call that (or <code>wp cv api PaymentProcessor.query payment_processor_id=7</code>), I get the following error:</p>
  
  <p><code>PHP Fatal error:  Class CRM_Core_Payment_OmnipayMultiProcessor contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (CRM_Core_Payment::doDirectPayment) in /home/members/healthcarenow/sites/dev.healthcare-now.org/web/wp-content/civicrm/extensions/nz.co.fuzion.omnipaymultiprocessor/CRM/Core/Payment/OmnipayMultiProcessor.php on line 34
  </code></p>
  
  <p>What am I doing wrong? How can I successfully call this API?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-02-28T23:25:05.073Z
Comments.Text: would be interested to know if something recent has caused you to need to audit this. We have been bitten recently by finding that editing Recurs via the civi UI triggers a factor in a.net that results in nothing being passed back to civi successfully and does not get caught by getmissing or retry so we weren't even seeing them failing - though they exist in _system_log
Comments.UserDisplayName: petednz - fuzion
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-01T17:44:31.580Z
Comments.Text: Nope - this was a 4.6 site that had recurring payment issues due to deadlocks fixed in 4.7.  I wanted to use Omnipay to audit the issues - but of course OmniPay for CiviCRM is 4.7 only.
Comments.UserDisplayName: Jon G - Megaphone Tech
Tags: <api><payment-processor><developer><recurring-contributions><omnipay>
Title: How can I use the Omnipay processor to audit missing payments?
ThreadText: # How can I use the Omnipay processor to audit missing payments?
  
  (Asked by: username_0 on 2017-12-08)
  
  I was told that I could use the Omnipay processor to detect missing payments.
  
  I've determined that I need the API action `PaymentProcessor.getmissing`, and I can call this with: `wp cv api PaymentProcessor.getmissing payment_processor_id=7`. However, when I call that (or `wp cv api PaymentProcessor.query payment_processor_id=7`), I get the following error:
  
  `PHP Fatal error: Class CRM_Core_Payment_OmnipayMultiProcessor contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (CRM_Core_Payment::doDirectPayment) in /home/members/healthcarenow/sites/dev.healthcare-now.org/web/wp-content/civicrm/extensions/nz.co.fuzion.omnipaymultiprocessor/CRM/Core/Payment/OmnipayMultiProcessor.php on line 34`
  
  What am I doing wrong? How can I successfully call this API?
  
  **Tags:** api, payment-processor, developer, recurring-contributions, omnipay
  
  > **Comments:**
  > **username_1**: would be interested to know if something recent has caused you to need to audit this. We have been bitten recently by finding that editing Recurs via the civi UI triggers a factor in a.net that results in nothing being passed back to civi successfully and does not get caught by getmissing or retry so we weren't even seeing them failing - though they exist in _system_log  
  > **username_0**: Nope - this was a 4.6 site that had recurring payment issues due to deadlocks fixed in 4.7.  I wanted to use Omnipay to audit the issues - but of course OmniPay for CiviCRM is 4.7 only.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2017-12-08. Score: 1 | Accepted answer
  
  What version of CiviCRM are you on? It should work on the latest 4.7 - & it's working for me (I'm using latest of github) - but there might be something more or less forgiving in the config
  
  > **Comments:**
  > **username_0**: I forgot to post back that yes - I hadn't realized I had a CiviCRM/Omnipay version mismatch.  This is the correct solution :)  
  
  ---
  
  ### Answer by username_1 on 2018-02-28. Score: 0
  
  The below works for me in case that points to anything that might help you
  drush cvapi PaymentProcessor.getmissing sequential=1 is_recur=1 payment_processor_id=9 start_date_time="2018-01-08" end_date_time="2018-01-09" contribution_status_id=1 lazy_logging=1
  
  followed eg by 
   cvapi PaymentProcessor.retrymissing start_date_time=2017-03-01 end_date_time=2017-04-01 payment_processor_id=9 contribution_status_id=1 is_recur=1
  
  Note: grab the latest code of lazy logging doesnt' work for you (output table format)
  Warning: the above are in use on site that has multiple a.net processors involved so has extra parameters to cope with that
  
  
  ---
  
  