Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Recurring Billing is hard, is hard, is hard.

Recurring Billing is hard, is hard, is hard.

Presentation on the complexities of doing recurring or subscription based billing. Focus is on doing it in conjunction with Drupal but the advice is relevant to anyone that's trying to to this. DrupalCon 2012.

eojthebrave

March 22, 2012
Tweet

More Decks by eojthebrave

Other Decks in Technology

Transcript

  1. What is recurring billing ★ Newspaper / Magazine subscriptions ★

    ISP / Netflix ★ SaaS : Basecamp / Pantheon / Unfuddle / Yammer ★ Rent When you give a merchant permission to charge your account at regular intervals for purchase of goods or services. Thursday, March 22, 12
  2. The 5 Minute Version ★ Use a service if you

    can ★ Try and find a way to simplify your needs ★ Test the crap out of everything ★ Focus on communication and customer relations How to do recurring billing ... Thursday, March 22, 12
  3. This is a story not a solution. I don’t have

    all the answers ... I’m not actually sure they all exist ... Thursday, March 22, 12
  4. So should I roll my own or use a service?

    flickr.com/photos/49503102897@N01/54389823/ Thursday, March 22, 12
  5. ★ Wait what do you mean service? ★ What is

    this going to cost me? ★ How much time is it going to take? ★ Does it provide the flexibility I need? Thursday, March 22, 12
  6. ★ Wait what do you mean service? “Focus on your

    Core Business and Increase Revenue by letting CheddarGetter handle your billing.” “Buid your business, not your billing system.” Thursday, March 22, 12
  7. ★ Wait what do you mean service? And just for

    clarity ... there are gateways too. Thursday, March 22, 12
  8. ★ What is this going to cost me? Costs /

    based on Authorize.net ★ $99 setup, + $20/month + $0.10/transaction. ★ $20 + ($0.10 * 100) = $30. ★ CIM = +$20/month ★ 100 * $10 = $1000 ★ $1000 / $50 = 5% Thursday, March 22, 12
  9. ★ What is this going to cost me? Costs /

    based on PayPal ★ $30 + ($0.30 + 0.029 * $10) * 100 = $130.59 Thursday, March 22, 12
  10. ★ What is this going to cost me? Service costs

    With 100 - 300 subscribers expect to pay about 15% - 20% of your revenue to use a service. Is it worth? Depends. Thursday, March 22, 12
  11. ★ What is this going to cost me? Build it

    yourself Thursday, March 22, 12
  12. ★ How much time is it going to take? To

    hard to answer. Currently there are no “canned” solutions for D7 so no matter what you do you’re going to have to write some code. The amount will vary depending on your requirements. Thursday, March 22, 12
  13. Can I implement the necessary plans for my business? Can

    I provide coupons? Can I change the text of e-mails? ★ Does it provide the flexibility I need? Thursday, March 22, 12
  14. flickr.com/photos/28077296@N02/5417026496/ Card Store If you’re going to have to store

    credit card numbers somewhere. It would be awfully nice if you could take it with you when you go. http://portabilitystandard.org Thursday, March 22, 12
  15. Dunning Management aka. nagging people until they provide you with

    information or do something ... Thursday, March 22, 12
  16. “Easy: subscription billing with Stripe. Still Annoying: reporting to users

    their invoice history / plan changes / cancelations.” - @jwo Thursday, March 22, 12
  17. Reporting ★ Not all services are equal ★ Commerce &

    Ubercart both have basic reporting ★ Build your own with views, only you know your data. Thursday, March 22, 12
  18. ★ Allowing for trials, first month free, etc. ★ System

    for providing coupons ★ Suspensions and putting your account on hold ★ Provide a UI for updating your own account Thursday, March 22, 12
  19. The Five Commandments of Testing As written by those who

    have attempted to test and failed. Thursday, March 22, 12
  20. Thou shalt test everything Including the bits that are hard

    to test. Even those that occur in the future. Thursday, March 22, 12
  21. Thou shalt use a dummy gateway Using a testing (mock)

    gateway will allow you greater flexibility when testing. Thursday, March 22, 12
  22. thou shalt test with a developer account Upon completion of

    business logic testing Thursday, March 22, 12
  23. $config[‘api_keys’] = ‘LIVE-keys’; $config[‘process_recurring] = TRUE; $config[‘db’] = ‘mysql://live’; $config[‘api_keys’]

    =/‘DEV-keys’; $config[‘process_recurring] = FALSE; if (file_exists(‘./settings_overrides.inc’) { include_once(‘./settings_overrides.inc’); } settings.php settings_overrides.inc Thursday, March 22, 12
  24. $config[‘api_keys’] = ‘LIVE-keys’; $config[‘process_recurring] = TRUE; $config[‘db’] = ‘mysql://live’; $config[‘api_keys’]

    =/‘DEV-keys’; $config[‘process_recurring] = FALSE; if (file_exists(‘./settings_overrides.inc’) { include_once(‘./settings_overrides.inc’); } settings.php settings_overrides.inc Put this in VCS Do NOT Put this in VCS Thursday, March 22, 12
  25. ★ Lets talk modules ★ D6: ubercart, uc_recurring ★ D6:

    chargify and friends ★ D7: recurly ★ D7: commerce, commerce recurring, COF, interval, etc. Thursday, March 22, 12
  26. ★ Here it is the secret you’ve been waiting for.

    flickr.com/photos/sethoscope/2884743046/ Thursday, March 22, 12
  27. Recap ★ Use a service if you can ★ If

    you can’t be prepared to write some code. ★ Try and find a way to simplify your needs ★ Charging someone isn’t the hard part, its everything around it. Thursday, March 22, 12