New extension makes it easier to handle recurring contributions

Published
2014-10-29 21:27
Written by
SarahGladstone - member of the CiviCRM community - view blog guidelines

This extension has been unpublished from the CiviCRM extensions directory, as it is obsolete. The source code is still at GitHub (https://github.com/sgladstone/com.pogstone.paymentprocessorhelper), but is not maintained, nor recommended. 

 

Pogstone has published a new native extension called "Payment Processor Helper" Its designed to standardize and streamline, and ease support challenges related to automated recurring contributions that are connected to payment processors. This extension is NOT a payment processor. Its designed to work along side existing payment processors, which at this point includes PayPalPro, Authorize.net and eWay recurring.  Hopefully this is of use to organizations using one of those 3 payment processors, and/or other developers creating payment processors that want to offer automated recurring contributions.

If you are currently an organization using Authorize.net, PayPal, or eWay, this extension will provide more robust processing of automated recurring contributions from the payment processor. Plus you can use the custom search to look at the history of IPN/silent post communications.

If you are a developer working on a new payment processor, you may want to consider enhancing the scheduled job and the custom search in this extension to handle the messages/data from your new processor.

You can download and learn more about this "Payment Processor Helper" extension at: https://civicrm.org/extensions/payment-processor-helper

-Sarah Gladstone

http://pogstone.com

Comments

Congrats Sarah, this look really useful and the search GUI will help us debug the why's and how's of dealing with failed or unregistered recurring transactions.

CiviDesk - Thanks for the comment.  Let me know how this extension works out for you.

A small aside - in 4.5 all IPN calls are logged to the system_log table - this is for forensic purposes. We've had some conversations about using the event_queue table for storing things like IPNs to be processed & that might happen in 4.6

Eileen - I have not yet tested or verified the extension for version 4.5. Thanks for the heads up. 

Anonymous (not verified)
2014-11-06 - 10:17

Hi Sarah,

I've been trying to find a solution to our problem, which is: some recurring payments made by Authorize don't get communicated back to civiCRM. 

I haven't, so far, been able to identify the reasons for this, but it seems that it's due to an error such as change of cc , payment declined etc. But, even after we've discovered the problem for a particular contributor and corrected it on Authorize, the "communication breakdown" continues for that person's account.  

As I understand it, your solution will provide more specificity in the logs about these payments which is great. But, is there a way, as an Admin, to reconnect civiCRM with Authorize after we've noticed a problem with the account and corrected it?

1) Is the Payment Processor Helper an update/replacement for your earlier fix detailed in Fun and joy with Authorize.net?

2) Would you be able to briefly explain what causes of of the problem are?

Thank you! 

Haden - 

I am not sure what you mean by "reconnect CiviCRM with Authorize.net". As long as you have the "Silent Post URL" configured correctly in the Authorize.net portal, messages from Authorize.net will be sent to your CiviCRM environment.  Also keep in mind CiviCRM does NOT store credit card numbers, expiration dates, etc. for automatically recurring contributions via Authorize.net.  So if you have logged in to Authorize.net and updated an expiration date or card number then the automated transactions will work as expected. 

Re 1) This extension is a replacement for my earlier fix detailed in my blog post "Fun and joy with Authorize.net

Re 2) Without a log, its tough to troubleshoot

 

 

Sarah - By "reconnect CiviCRM with Authorize.net" I meant that when a disruption occurs (e.g. card expiration), subsequent confirmations for some contributors aren't communicated back to us. This is after we've corrected the exp. date on Authorize. I've confirmed that the Silent Post URL on Auth points to the location of authorizeIPN.php on our system. 

I'd like to install the Payment Processor Helper, but when I go through Administer..System Settings..Mange Extensions, it doesn't appear. Clicking the "Refresh" button flickers a page briefly then dissappears. 'Add New' does show a list of extensions, but PPH isn't among them.

I posted in the forums http://forum.civicrm.org/index.php/topic,34872.0.html on this. Is there a work around for me to install it?

Thanks so much for making this available.

Haden

Haden - I posted step-by-step instructions on your forum post: http://forum.civicrm.org/index.php/topic,34872.0.html

I've just had a look at your extension, to see how you're dealing with the issue of line items and their entries in the financial tables.

I'm concerned that:

1. You're replacing the code for two core payment processors. That means you'll have to maintain that code, over multiple versions. This seems like a dangerous strategy.

2. The code quality is quite poor. As an example, the function handle_the_message in this file:

https://github.com/sgladstone/com.pogstone.paymentprocessorhelper/blob/master/api/v3/ProccessorMessage/Processnewmessages.php

is quite poorly written and hard to read (and so hard to properly maintain, etc.). I think you might want to review the coding standards and look at some of your logic (e.g. right at the beginning, you've got repeated code that is a waste of space and processing).

3. You're writing directly to the financial tables. I understand that you're trying to fix them, but this is not the right approach, and is dangerous - I can easily imagine that it might wreck someone's CiviCRM install.

Conclusion: I applaud your goals and effort here, but this extension is not ready for a public release.

 

Notify potential users of the extension that its "alpha" code, not to be used in production.

I read all of this page and then checked the github page which (at 22 Aug 2016) says:

 

Do NOT use this extension. It is obsolete. Also there have been numerous updates and improvements to CiviCRM core that render this extension unneeded.