This is a question I’d like to broadcast to the community in general. I have a client that wants to charge their users for their usage of their site, similar to how the phone company charges you for the usage of your phone line.
It’s actually somewhat similar to how Netflix charges their customers. If you start out with a one DVD subscription your monthly fee is $X. However, if you decided to add a DVD to your subscription they immediately charge you a prorated amount for the extra DVD and then, on your next billing cycle you start paying $Y.
The problem I’m running into is, really, the prorated fee. From what I can tell most gateways will let you change how much the user is charged on their schedule. However, I’m not sure how to charge the prorated amount.
The main problem is that we don’t want to store the user’s credit card information. My client is a small, one person, business. His server is colocated with a hosting provider. If we store the credit data, even if it’s encrypted, we don’t have the security expertise, much less time, to insure that it’s 100% secure.
Heck, with the best of intentions last week a server I work with frequently somehow had a rootkit installed on it! With root access to the server they could easily get the database and the description keys. What’s the point in that case of even encrypting the data?
We’re uncomfortable storing the credit information locally due to the potential of liability problems.
So, what I’d like to find is a service where I can store the credit card details outside of our system in someone else’s secure systems. I’d be happy to store an identifier for the card locally in the database. Then we could create our own process and system for charging the user against their stored credit details.
Anyone know of anything like this? I’m not having much luck finding anything. I’ve heard people refer to this as a “Vault”, but Googling hasn’t turned up much yet. Any other ideas?
Comments on: "How Would You Bill Users?" (9)
I seems like it would be easier for you to charge x for first month, y plus prorated amount for the first month at the new rate and y there after.
Unless it’s a porn site or something similar I wouldn’t think you would loose many subscriber’s prorated amounts that way (and if it’s porn, he should loose his money anyway!)
Mark, Unfortunately, if I were to do what you suggest then I would be running into a synchronization problem. What strategy would I apply to insure that the scheduled transactions are updated correctly both before theyre run and after? I can easily update fromn $x to $y, but if I need to add, for one time only, $a to the fee, then how do I know when the transaction has been run successfully so I can change the rate back to what it needs to be? What if the processor has issues and scheduled charges are a day late? I cant insure that the third party does their job unless Im directly involved.
I’ve never used their service (nor am I an advocate of) – so I can’t attest to the validity or if it fits your needs, but have you tried PaymentOnline ( http://www.paymentonline.com/ ) ? They seem to have alot of those features, and claim to be CISP compliant.
Eric – Interestingly, I was looking at them earlier today. Their postback after a recurring transaction might allow the sort of integration I need to do (because it eliminates the sunchronization problem). But, anoyingly, they’re very expensive.
Keep the suggestions comming!
Hey, a bit more digging and… who knew? Payflow Pro (formerly Verisign, now Paypal) has a seemingly pretty robust API for managing recurring transactions, as well.
Click to access PayflowPro_RecurringBilling_Guide.pdf
Don’t know your budget – but it may be an easier pill to swallow.
At this point in time it looks like we’re going to go with Chase Payment tech. According to their documentation you can store a credit card with them and recieve an ID value back. You can then use that ID number to process future transactions.
http://www.paymentech.net/ for more information.
There are two issues you will run into.
1. If the user opts to add on to their subscription.
2. If the user opts to decrease their subscription amt.
You can bill your clients in two ways.
a. charge them in advance for the service as organizations that provide service at a fixed cost do. E.g. insurance, cable, etc..
You will have to make a one time debit or a credit charge for the balance.
b. charge them after providing the service if the cost is variable all the time, phone etc…
You bill should reflect the change and the date of change. You will just bill them at the correct amount.
What did you end up going with? Was it Chase Payment tech? Do you like it or whatever service you ended up using? Thanks a lot.
@Fred – We ended up using Chase Paymentech. Their system is not nearly as easy to work with compared to others, but it does work. So yes, that’s what we decided to do. It’s only barely in production but no bit problems yet.
That said, the whole process of getting setup with them and approved to use their system took weeks.