What we are looking for and I would think that others are looking for is a payment management system. I can not find any modules that offer a complete solution. The features I am looking for is as follows:
1) A tie to Dynamic Registration so that a person can purchase a role based subscription at registration time. Also the user can upgrade the subscription at any time. Multiple levels with different prices should be available. Each level should be able to add user to one or more roles. Also be able to specify roles that the user is removed from.
2) Initial payment should be submitted immediately through Authorize.net ARM so that the user will get immediate feedback if payment fails. Customizable receipt emailed to user.
3) Payment information should be entered into Authorize.net CIM in order to allow subsequent payments.
4) Reoccurring payments to be performed by module using payment method stored in CIM. Customizable receipt emailed to user.
5) If payment fails, customizable failure email sent to user.
6) User can log into website and access payment system and update their payment method when required. If payment is outstanding because of failure then it is resubmitted.
7) User can change their subscription or stop it all together.
8) User can see a list of all payment for their account.
9) User can authorize one time payments using payment method on file at any time.
10) Customizable email that is sent to user prior to payment being submitted. This email should have a setting saying which frequent of payment should get it. For instance we are offering 1 month and annual payment options. We only want to send the email to users that about to get charged their annual payment.
The reason we do not want anything to do with Authorize.net ARB service is that it requires way to much work. If a payment fails, their is no way to fix it and have the failed payment resubmitted. We have to obtain the payment information from the user and submit a manual payment via Authorize.net and then update the ARB entry for future payments. ARB service does not validate that a credit card payment will go through until it runs later. So if an ARB initial payment fails for any reason including typos it has to be manually fixed like above.
As soon as someone actually releases a module that
<!--[if gte mso 9]>
Normal
0
unctuationKerning />
false
false
false
ontGrowAutofit />
MicrosoftInternetExplorer4
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
<!--[if gte mso 10]>
satisfies our needs we will purchase it, barring an unreasonable price (price in the thousands).