When a potential subscriber checks out with a recurring subscription, the payment is cleared at Authorize.net and the subscriber receives an email confirmation of payment, however the role Granted On Purchase is not set. Is this the expected behavior?

I would assume that upon initial payment, the role would be granted immediately upon successful payment, but this is not the case?

The product is a unlimited recurring subscription, interval of 7 days, for a $5 fee. It is granting a single role upon subscription.

Using Authorize.net, CIM for recurring payment management, production test mode (not developer mode)

Comments

artatum’s picture

Same here.

carsonw’s picture

Same here.

SWMdave’s picture

Following-

BeatnikDude’s picture

Same here: no role assignment on recurring subscription purchase.
- using 7.x-2.0-alpha3 w/ Authorize.net.

dewolfe001’s picture

I have the same problem with Paypal WPS.
Has anyone been able make a recurring subscription with Ubercart core in D7? I can't figure how it handles expiration and the like.

tinker’s picture

Priority: Major » Normal
Status: Active » Closed (works as designed)

Yes this is expected behavior. The default setup is for the role to be granted when order status is marked "completed". This is because Ubercart has 3 forms of checkout: logged in, logged out but with account, anonymous (or new account). Traditionally during the payment stage of the order Ubercart only knows the user account if the user is logged in before starting checkout. The user account is needed to grant a role and only when checkout completes will Ubercart load or create the user account.

Now at some point there was a change to Ubercart to force checkout during the payment stage so that a user account is known. This is a bug as it breaks the checkout process but it's been around for at least a year. It's probably intention was do provide a solution to a similar problem reported here. I have created a patch for Ubercart to make this work properly without compromising checkout. See #1669968: hook_uc_checkout_complete() is called outside of checkout process (when payment is entered). Before the role grant work flow can change in uc_recurring the bug in Ubercart has to be fixed. I suggest anyone wanting the change here to review the bug fix so it can get committed.

As a temporary fix you can create a new Conditional Action or Rule that executes on trigger "Customer completes checkout" and set a condition that "Order balance is less than or equal to zero" and then perform the role grant action. But this will not work when payment is entered after checkout.

I have marked this 'closed (works as designed)'. If anyone wants this to work differently then they can reopen this issue as a feature request but like I said Ubercart needs to be fixed before a stable change can be made here.

tinker’s picture

Issue summary: View changes

update information

Nikdhil Mdohfan’s picture

Issue summary: View changes

same here

capfive’s picture

I still dont understand what i need to do to fix this, will the role still get taken away if the subscription expires?