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. RECURRING
    BILLING
    is hard, is hard, is hard.
    @eojthebrave • [email protected]
    Thursday, March 22, 12

    View full-size slide

  2. @eojthebrave • [email protected]
    Consulting • Training • Development
    Thursday, March 22, 12

    View full-size slide

  3. @eojthebrave • [email protected]
    Thursday, March 22, 12

    View full-size slide

  4. 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

    View full-size slide

  5. 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

    View full-size slide

  6. ★ Tick tock, tick tock ...
    flickr.com/photos/25299470@N00/3642119413/
    Thursday, March 22, 12

    View full-size slide

  7. 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

    View full-size slide

  8. So should I roll my own or use a service?
    flickr.com/photos/49503102897@N01/54389823/
    Thursday, March 22, 12

    View full-size slide

  9. ★ 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

    View full-size slide

  10. ★ 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

    View full-size slide

  11. ★ Wait what do you mean service?
    Services ... ishish ...
    Thursday, March 22, 12

    View full-size slide

  12. ★ Wait what do you mean service?
    And just for clarity ... there are gateways too.
    Thursday, March 22, 12

    View full-size slide

  13. ★ 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

    View full-size slide

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

    View full-size slide

  15. ★ What is this going to cost me?
    http://www.billingsavvy.com/
    Thursday, March 22, 12

    View full-size slide

  16. ★ 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

    View full-size slide

  17. ★ What is this going to cost me?
    Build it yourself
    Thursday, March 22, 12

    View full-size slide

  18. ★ 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

    View full-size slide

  19. 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

    View full-size slide

  20. 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

    View full-size slide

  21. PCI is a four letter word
    Thursday, March 22, 12

    View full-size slide

  22. Dunning Management
    aka. nagging people until they provide you
    with information or do something ...
    Thursday, March 22, 12

    View full-size slide

  23. I told you this wasn’t going to be easy.
    flickr.com/photos/49503102897@N01/54389823/
    Thursday, March 22, 12

    View full-size slide

  24. “Easy: subscription billing with
    Stripe. Still Annoying: reporting
    to users their invoice history / plan
    changes / cancelations.” - @jwo
    Thursday, March 22, 12

    View full-size slide

  25. 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

    View full-size slide

  26. ★ 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

    View full-size slide

  27. The Five Commandments of Testing
    As written by those who have attempted to
    test and failed.
    Thursday, March 22, 12

    View full-size slide

  28. Thou shalt test
    everything
    Including the bits that are hard to test.
    Even those that occur in the future.
    Thursday, March 22, 12

    View full-size slide

  29. Thou shalt
    sanatize thine data
    Thursday, March 22, 12

    View full-size slide

  30. Thou shalt
    use a dummy
    gateway
    Using a testing (mock) gateway will allow you greater
    flexibility when testing.
    Thursday, March 22, 12

    View full-size slide

  31. thou shalt test with a
    developer account
    Upon completion of business logic testing
    Thursday, March 22, 12

    View full-size slide

  32. Thou shalt test
    with real data
    Wait ... WHAT?
    Thursday, March 22, 12

    View full-size slide

  33. $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

    View full-size slide

  34. $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

    View full-size slide

  35. ★ Lets talk modules
    ★ D6: ubercart, uc_recurring
    ★ D6: chargify and friends
    ★ D7: recurly
    ★ D7: commerce, commerce recurring, COF, interval, etc.
    Thursday, March 22, 12

    View full-size slide

  36. ★ Here it is the secret you’ve been waiting for.
    flickr.com/photos/sethoscope/2884743046/
    Thursday, March 22, 12

    View full-size slide

  37. ★ This is Haley. Say Hi Haley.
    Thursday, March 22, 12

    View full-size slide

  38. ★ Focus on communication and customer relations
    Thursday, March 22, 12

    View full-size slide

  39. 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

    View full-size slide