Would this module also be compatible with Authorize.net's Automated Recurring Billing™? http://www.authorize.net/solutions/merchantsolutions/merchantservices/au...

Ideally, with a config interface which would allow admin's to select a timeframe for the recurring payment associated with a product.

Comments

raffij’s picture

+1

BenK’s picture

Subscribing

vmi’s picture

Title: Automated Recurring Billing Support » Sponsorship

I see there are others who are also interested in this issue. I'm in need of a automated billing solution for a subscription based service. If there are other solutions available for D7, I would be interested to learn what all of you might be using as I currently don't have a merchant, I'm open to suggestions.

Is the development of this module being hindered due to integration issues with Drupal commerce?
Is there a lack of interest in developing this module/feature due to a substitute for Drupal commerce which could handle recurring payments?

If not -
Given sufficient interest for this feature/module perhaps we can all create a sponsorship pool which could provide a solution for our common need. As a bonus it would be a contribution towards something everyone can use as an added feature in Drupal Commerce with support for integrated recurring billing feature. Just a suggestion.

vmi’s picture

Title: Sponsorship » Automated Recurring Billing Support
rszrama’s picture

Status: Active » Postponed

Right now I have no plans to integrate the service. I suppose I can support it at an API level, but I have no intentions of attempting to develop and maintain a Drupal native recurring billing interface. My experience with UC Recurring proves it's very difficult to do well. Instead, I'll be focusing my efforts on integrating with Recurly via http://drupal.org/project/recurly. The best thing might actually be an alternate Commerce Authorize.Net ARB module.

rich.yumul’s picture

subscribing

vmi’s picture

Having it available at an API level would be a great solution for me actually.

storyleader’s picture

If you create any code, will you post it here, VMI?

storyleader’s picture

Would it be possible to create an add-on module for Commerce that would handle creating these ARB (Automatic Recurring Billing) subscriptions on Authorize.net? The authnet API doesn't look too complicated to me: http://www.authorize.net/support/ARB_guide.pdf (They also have some sample code.)

Not being a programmer myself, I imagine the task this way:

1. Form for specifying the up-to-12 values that authnet API can accept for a subscription. This would be part of (or associated with) a single product instance (e.g, blue coffee cup without special coating).

2. Action code to send the ARB subscription info (the 12 values mentioned above) plus the customer info (including credit card info) to authorize.net

3. Some way to receive the response from authnet and display it. (e.g., "successful," "failed - invalid card", etc.)

4. A view that includes this subscription info in the customer's account page.

Is this accurate? Is there more to it than this? Ryan, I bet there are issues you're aware of that I don't yet see.

In any case, I'm interested in being part of the sponsorship pool.

vmi’s picture

I still have to do some more research to assess what the best solution would be for my requirements.

I would be happy to contribute back if I end up doing something with authorize.net but currently I'm considering implementing Paypal's recurring billing option follow here:
http://drupal.org/node/1126836

minnur’s picture

Subscribing

leon85321’s picture

+1

Poieo’s picture

Subscribing...

Would be willing to chipin to fund a Commerce Authorize.Net ARB module.

nate.dame’s picture

I'd also be willing to chipin.

johnmmarty’s picture

Any recent developements on this issue?

perignon’s picture

lakerguy’s picture

Did anyone succeed in integrating with either Authorize.net ARB or Recurly for recurring billing?

cosmicdreams’s picture

For my current project, my client specifically needs Authorize.net ARB support. So I'm going to take a shot at this.

Have other tried to write this module? Is there some code that I could finish in order for this feature to exist?

Please let me know, I have three weeks to write this module and I am determined to get it done on time and on budget.

Also, Ryan, can you let me know what dragons I'm about to run up against if the complexities and frustrations of this problemset are enough to turn you away can you let me know what they are so I can anticipate them.

vmi’s picture

I ended up going back to D6 / Ubercart / Subscription Manager over this.
Look at that first before trying to port to 7.

chasematterhorn’s picture

Clearly the recurring billing is tricky. I am using D7 and need something that will handle recurring payments with Commerce as I have no intention to go back to using Ubercart. I tried Recurly, but the additional fees are no good and the module is in need of updating for compatibility with the latest API. I have Commerce Subscription Products installed but this provides no billing method. I am about to give the Commerce Recurring Framework a shot, as this appears to have some recent commits and activity. Would appreciate hearing from anyone about what might have worked.

cosmicdreams’s picture

I'm currently testing this recipe:
Drupal Commerce + Drupal Commerce Authnet (CIM + AIM) + Drupal Commerce Recurring

A lot of the rules to make the bare minimum of what I want are already there. I'm checking to see if it actually will send the recurring payment to my test account on Authorize.net presently. If that works then this will be my solution since it's based on Drupal Commerce and Drupal Commerce rocks!

Everything else seems to be working fine.

Edit: Everything worked fine. This is really awesome.

R.J. Steinert’s picture

@cosmicdreams Hehe, you're in for a big surprise when those children Orders don't post Payments. The commerce_authorize module doesn't implement a charge callback that the "Process payments against recurring orders" Action in the commerce_recurring module expects to be there (see line 388 in commerce_recurring.rules.inc). I came upon this issue when setting my linux environment ahead in time using the date command to trigger recurring Orders and Payments. The Orders are built correctly, now the final piece of patching the commerce_authorize module needs to be done. I'm working on a patch right now and I'm in the #drupal-commerce IRC channel if anyone wants to chat.

cosmicdreams’s picture

Damn, if that's true, then I only have a few days to correct that. How long are you going to stay in the chat? I'll be back only into development mode in about 5-6 hours.

R.J. Steinert’s picture

vlkff’s picture

I have implemented the module (a sandbox project for a moment) providing an API to authorize.net ARB and implements ARB as a commerce payment method.
See: http://drupal.org/sandbox/vlkff/1572412
Hope it would be useful.

bloomt’s picture

Did anyone ever get anywhere with this idea?

aramboyajyan’s picture

Issue summary: View changes

Someone from the maintainers should give a final word on the current status of ARB, as this is very confusing.

On the overview page of this module on Commerce Guys Marketplace it clearly says that it features "Automated Recurring Billing™ (ARB)* to handle online subscriptions.":
https://marketplace.commerceguys.com/extensions/authorizenet/overview

However, according to this issue, that is not the case.

What is the current status of ARB and this module?

Thanks!

rszrama’s picture

This module does not offer ARB integration; Authorize.Net does offer and advertise (through our Marketplace) that they offer ARB, but that's listed in a set of general features of the gateway and not this particular module. Definitely confusing, will pass it on to their team to improve the listing in our marketplace.

aramboyajyan’s picture

Thanks for quick response Ryan!

manisha.singh04’s picture

I am also interested to know about the recurring.

heddn’s picture

Version: 7.x-1.x-dev » 8.x-1.x-dev
Status: Postponed » Active

Let's see if we can reboot this on D8. Adding support to this in D8 shouldn't be that hard. Also, linking in https://github.com/commerceguys/authnet/issues/12 for the upstream required changes.

heddn’s picture

Status: Active » Needs review
Issue tags: +Needs tests
StatusFileSize
new55.03 KB

Probably could use some automated testing, but this worked with manual testing.

travis-bradbury’s picture

Status: Needs review » Needs work

I haven't had the chance to try this entirely but I did run into one issue. When using the ARB gateway there's a minor issue because it doesn't have a cca_status configuration option and AcceptJsAddForm seems to expect that.

Notice: Undefined index: cca_status in Drupal\commerce_authnet\PluginForm\AcceptJsAddForm->buildCreditCardForm() (line 177 of modules/contrib/commerce_authnet/src/PluginForm/AcceptJsAddForm.php).

heddn’s picture

Status: Needs work » Needs review

re: #33
The error you are seeing is un-related to these changes. They are related to the fact that you have a default config stored in your active state that does't include the recent changes fro CCA. You would get those errors with or without this patch applied.

heddn’s picture

StatusFileSize
new1.11 KB
new55.06 KB

Here's one more small tweak I added for DX reasons. In my case, I have a bunch of items that can be purchased and some things that are a recurring donation. I end up extending the AcceptJs gateway class to weed out my donation line items and handle them separately. With that in mind, the TransactionRequest cannot assume that all of the money in the Payment gets assigned to this non ARB transaction. We should rather loop over the collected line items and set the amount from there. That one change means I don't have to copy/paste the entire method and change that small calculation.

heddn’s picture

StatusFileSize
new55.08 KB
new759 bytes

Fix undefined index error on += addition.

cosmicdreams’s picture

Nice reorg, was it done to allow for more tests. I don't see more tests.

heddn’s picture

re #37:
I did the upstream changes in commerceguys, then built something here for general use. Then ate my own dog food and used the API in commerceguys to write my own custom payment gateway that extended from AcceptJs. When doing that, I discovered that the code in AcceptJs made a fatal assumption and /just/ a little tweak would fix it. Still needs tests.

heddn’s picture

StatusFileSize
new1.35 KB
new55.18 KB

Switching to more proper math.

Nils Loewen’s picture

StatusFileSize
new10.78 KB

Re-rolled patch to work with D8.6.1

Status: Needs review » Needs work

The last submitted patch, 40: 1095650-40.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

heddn’s picture

Issue tags: +Needs reroll
kkumaren’s picture

StatusFileSize
new53.64 KB

Patch 39 update

kkumaren’s picture

StatusFileSize
new56.66 KB

Fix code standards.

Remaining task:
Need to fix the automated test.

kkumaren’s picture

StatusFileSize
new57.08 KB

update code standards.

rwanth’s picture

StatusFileSize
new56.65 KB

Rerolling for 1.3.0. Only change is the removal of the change to UpgradeConfigTest, which was committed in another issue.

daniel korte’s picture

An update hook may be needed. I get an “Entity/field definitions” error in my status report:

Mismatched entity and/or field definitions
The following changes were detected in the entity type and field definitions.
Payment Method
The Subscription ID field needs to be installed.

daniel korte’s picture

Status: Needs work » Needs review
StatusFileSize
new56.66 KB
new658 bytes

Fixed add-payment-method form path

daniel korte’s picture

StatusFileSize
new56.67 KB
new1.04 KB
daniel korte’s picture

StatusFileSize
new2.31 KB
new54.88 KB

I don’t see the point of having the new payment method type authnet_arb just so we can show the user a “payment gateway assigned identification number for the subscription” in the payment method label. Additionally, it is possible for a payment method to be used on multiple subscriptions so the subscription_id would constantly be updated anyway which renders it useless for any programmatic purpose it could potentially have.

Also, it wasn’t working for me anyway :)

I think it should be removed.

bradjones1’s picture

For what it's worth, take a look at:

I'm of the general thinking that recurring is super dependent on local business logic, e.g. in my case I am using payments but not orders, and membership entities and "membership offers" to encapsulate the purchasable entity. You get the idea. Not saying this approach isn't valid, but as heddn points out in #38 and Ryan in #5, this is probably a bit far afield from the core authnet module IMO.

pavelculacov’s picture

Hello, It better to integrate with Commerce Recurring ?

https://www.drupal.org/project/commerce_recurring

need integrate here ARB with commerce recurring? Somebody have code for sandbox or some example?