I'm still learning my way around uc_recurring, so please forgive me if my issue is just due to me missing something obvious, and also if I'm outside the scope of uc_recurring considering the connection to the "Role assignment" feature of Ubercart.
We charge members a monthly rate and grant them a member role when the payment goes through. What I need to avoid is having a role expire immediately when a recurring payment fails, providing a 1 month "cushion" allowing the member or our organization to remedy the failed payment problem.
To accomplish this, I set the role assignment expiration to 2 months, while the recurring charge is 1 month.
This naturally produces an undesirable cumulative increase in the amount of time until role expiration (e.g 1st payment = 2 months of access, 2nd payment = 3 months of access, etc.)
If I continue down this path to resolving my problem, I need the role expiration to be fixed at 2 months for each recurring payment (which would then send me off to the Ubercart issue queue?), but I'm following through with this issue, because I think that a lot of uc_recurring users want to properly handle failed payments having various options to choose from (including whether or not to have the aforementioned cushion and the ability to set the duration of it), uc_recurring developers may want to consider whether or not their product should play a part in that, and I'm not convinced that this path is the best approach (hoping for some wisdom from you experienced ones to guide me).
How does uc_recurring handle failed payments?
If a payment fails, does uc_recurring try again and if so, is this configurable?
Comments
Comment #1
Scott McCabe commentedI forgot to add that we're using Authorize.net with CIM only (no ARB).
Comment #2
vitis commentedsubscribing
Comment #3
univate commentedThere is an option on the product fees settings page to allow you to alter how many times and when re-attempts are made on failed payments - although this feature will only work on triggered gateways (e.g. Auth.net CIM) and not hosted gateways like (Auth.net ARB).
As for roles, there is no simple solution here and I do not want to see uc_recurring directly tied into uc_roles as these modules do different things and should be kept separate.
I did start an attempt to try and come up with a "simple subscription" module: #569798: Simple Subscriptions UI, the idea behind this module is that it directly target the use case of a subscription site and integrates uc_recurring and uc_roles modules together. But it is very difficult to work with the various aspects of ubercart directly without using the web interface so building this module is not easy.
I think the best option is to try and use CA to trigger roles to be create and removed on uc_recurring events (rather then have their own expiry date for subscription products) - that way a role will stay active until it actually is marked as expired in uc_recurring.
Comment #4
vitis commentedTo clarify -
For a product that is a role assignment and has a recurring fee at one month intervals, do you recommend ?:
Product Settings > Role Assignment Settings > Expiration Period
End: Relative from Activation Time
Default Expiration : 40 days (a number more than the one month recurring interval)
How do Conditional Actions need to be altered for this option, if at all?
- or another option -
Product Settings > Role Assignment Settings > Expiration Period
End: Absolute role ending
Default Expiration : year 2020 (a long time in the future)
Add a Conditional Action that removes the role from the user when the subscription fee payment has failed (after re-trying)
Comment #5
roglesby commentedHello Scott,
Like you, I am new to uc_recurring / role assignment and concerned about recurr bill/expiration/renewal times so that if the recurr bill fails the member has time to correct the situation before expiration. I have run this site on a different CMS for the last 10 years so familiar with the various strengths and weaknesses of recurr billing subscription features. Using this experience I have taken a somewhat opposite tack that I have not yet completely implemented so uncertain if this works the way I think it should:
I have set the system to rebill 5 days prior to expiration. If the rebill fails a email will be sent to explain the situation to the member and give them a chance to reset their information. My concerns are:
1) Does the recurr bill reset the expiration time relative to the recurr bill date or the existing expiration date of the membership. The form suggests it is relative to the time of activation but I may be misunderstanding.
2) Experience teaches me that often members cards that fail today will succeed tomorrow. Multiple attempts following failure prior to expiration is desirable. I see univate above says there is such a setting on the products fee form, which I cannot seem to find. Have you found such a setting? Is this provided by a optional module?
Scott do you think this setup would work for you (and me)?
Robert
Comment #6
vitis commentedhere:
Store administration » Configuration » Product settings >> Product Features >> Recurring fee settings >> Extensions
Comment #7
roglesby commentedThank you.
R
Comment #8
univate commentedI'm still not sure the best way to handle this myself.
You can't set the roles to extend every 40 days and the recurring fees at 1month as on renewal the role will extend another 40days and this gap will continue to grow over time.
I think the options are that we need to either have extensions trigger the role for another X days or move to a CA triggered system to enable/disable roles.
Comment #9
vitis commentedAn example:
For the above setup, when would ubercart pull the Trigger: Recurring order renewal failed ? If payment failure is triggered on day 5 (the last attempt to capture payment), then this sounds like a good trigger for removing the role from the user.
Example of default triggers/actions:
Would this be a good place to put a conditional action ? such as -
Trigger: Recurring order renewal failed
Action: Revoke user role
Condition: Check if order is a renewal
Comment #10
univate commentedThere is also a trigger for "recurring order renewal expired" that is triggered after the last failed payment or when a subscription ends normally.
Comment #11
premierobjects commentedHi All,
We are using uc recurring fees and have thousands of users. It appears that from time to time it will charge a customer twice. The problem is with thousdands of users, this is starting to become a full time job for my support staff having to issue refunds. We use the paypal gateway. Would gladly pay anyone to help us get this issue fixed. Also have a fairly large ubercart project that requires quite a bit of customization that needs to be built as well. Gladly give this project to anyone who can help get this issue resolved.
Any help much appreciated.
Regards,
Will Berger
will@premierobjects.com
770-294-5329
Comment #12
univate commentedI am attempting to solve the recurring/roles integrations issue via this new module to specifically target membership/subscriptions applications - #569798: Simple Subscriptions UI