latest stable versions: v150827 (changelog)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

How to Setup a Variable Monthly Bill

Home Forums Community Forum How to Setup a Variable Monthly Bill

This topic contains 6 replies, has 3 voices. Last updated by  Jason (Lead Developer) 3 years, 10 months ago.

Topic Author Topic
Posted: Saturday Nov 17th, 2012 at 1:23 pm #31882
John Abadi
Username: jabadi

I’m a new user of s2member Pro and am building my site which provides an ongoing service for my customers/members. I am getting stuck on implementing a billing formula.

A portion of my members monthly bill needs to vary based on their level of usage of my service. A simple example is, lets say customer A and customer B are both members of my site. Terms of billing are $1 per widget consumed. Customer A consumed 100 widgets in the last 30 days and should be billed $100. Customer B consumed 60 widgets and therefore should be billed $60.

How could I insert this calculation into customer A and customer B’s s2Member billing cycle so that their monthly recurring bill is adjusted accordingly?

I have setup authorize.net as my payment gateway.

Any help or suggestions are most appreciated!

List Of Topic Replies

Viewing 6 replies - 1 through 6 (of 6 total)
Author Replies
Author Replies
Posted: Sunday Nov 18th, 2012 at 8:00 am #31921

Hi John.

I’m afraid that a subscription’s amount can’t be edited.

What you could do instead, is have the user pay each month through the pro-form that you update based on his service use the last month. This would require him to enter his payment details each time, because s2Member doesn’t store the payment info, though.

I hope that helps.

Posted: Monday Nov 19th, 2012 at 12:37 pm #31998
John Abadi
Username: jabadi

Thanks for the reply.

If the s2Member API allows me to make an UNSCHEDULED charge to a members account, then I wonder if I can accomplish this.

I am thinking that I could create a custom variable for each member inside s2Member (I think this is already possible) that would hold the ‘# of widgets consumed’.

Then my custom software would periodically run, and for each member, get the # of widgets consumed, and make a one-time charge to those account.

Is this possible?

Posted: Tuesday Nov 20th, 2012 at 8:11 am #32079

I don’t think it’s possible, but I’ll ask Jason about that one.

Posted: Wednesday Nov 21st, 2012 at 5:23 am #32226
Staff Member

Thanks for the heads up on this thread.

s2Member Pro creates an ARB (Automated Recurring Billing profile) in it’s integration with Authorize.Net. Once the billing amounts are established and agreed to by your customer, Authorize.Net does not allow these values to change. See: https://support.authorize.net/authkb/index?page=content&id=A507&actp=search&viewlocale=en_US&searchid=1353491994827

See also: https://support.authorize.net/authkb/index?page=content&id=A660&actp=search&viewlocale=en_US&searchid=1353491994827

That being said, you are certainly capable of processing transactions manually through the Virtual Terminal provided to you by Authorize.Net. It’s also possible to charge a credit card programatically through the Authorize.Net AIM API. Here are two possible scenarios that I can see for you.

1. You could have an s2Member Pro form to collect the customer’s credit card information each time you want to receive funds. However, based on your explanation, I don’t see this fitting the business concept you’ve presented.

What you’re trying to accomplish is geared more toward Automated Recurring Billing. In other words, you’re looking for billing to occur automatically, and not require the customer to come back to your site each time you need to be paid. While s2Member Pro does integrate fully with Authorize.Net’s ARB service, the $ amount that is charged automatically, is established when the customer agrees you pay you (at checkout), and cannot be changed each month unless the old ARB is terminated and a new one is created by you manually, or by your customer – at a different amount.

2. Regarding Virtual Terminal use, or one-time charges submitted through the Authorize.Net AIM API.

In the case of a manual transaction where you charge the customer X number of dollars using the Virtual Terminal provided by Authorize.Net, you will need the customer’s credit card number and expiration date (along with their permission of course). The same goes for any API driven routine (you still need the credit card details on file, stored in a database on-site).

For security purposes, s2Member Pro does NOT store any of your customer’s credit card information on-site. The customer’s credit card details DO pass through an s2Member Pro Form, and over to Authorize.Net. However, the Authorize.Net ARB service stores the customer’s credit card details securely at Authorize.Net, and s2Member does NOT store them in your WP database; because from this point on, future billing occurs on the Authorize.Net side of things, and is not controlled by your WP installation. It doesn’t need to be.

In short, this is NOT possible with a default installation of s2Member Pro. If you wanted to accomplish this, you would need someone to assist you in writing custom code that collects and stores credit card details submitted by your customer, and a custom routine that would later come back and charge specific amounts that you set.

Reference article: Automated Recurring Billing service from Authorize.Net.

Posted: Wednesday Nov 21st, 2012 at 8:18 am #32234
John Abadi
Username: jabadi

Thanks Jason for such a clear and complete answer.

Posted: Friday Feb 15th, 2013 at 1:11 am #41771
Staff Member
UPDATE: It is now possible to change the amount, either manually or programmatically.
See: http://www.s2member.com/forums/topic/modifying-monthly-recurring-amt-w-authorize/#post-41769
Viewing 6 replies - 1 through 6 (of 6 total)

This topic is closed to new replies. Topics with no replies for 2 weeks are closed automatically.

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Contacting s2Member: Please use our Support Center for bug reports, pre-sale questions & technical assistance.