We think in code and pixels, but we’ve got stuff to say too


Fetching Tweets...

Follow us on Twitter


One of the main reasons for developing mobile applications, aside from building cool products and services, is making money. Developers have been able to monetize apps through a purchase price, in-app purchases and advertising. However, there are situations, such as dealing with the sales of physical goods, which are not suitable for in-app purchases. Stripe is the solution to this problem. Stripe is an open-source platform that allows app developers to collect payments directly from users without implementing an in-app purchase system.

One of Stripe’s greatest strengths is how it completes most of the heavy lifting regarding security for you. The Stripe API and their server complete the processing and storage of credit card information, which is all PCI (Payment Card Industry) compliant. This means that all you have to do is gather the necessary information, package it up with your server and send it to Stripe.

To accomplish this, client and server APIs are provided for many common platforms. Stripe is supported on iOS, Android and JavaScript web applications for the client side and several server languages including Ruby, Python and PHP. I used the iOS tools with Ruby on Rails for the server so experiences might vary when implementing on other platforms.

Now, before we dive into the code, let’s talk a bit more about Stripe’s capabilities. With this system, you are able to set up subscriptions for recurring billing and one-click purchases by storing information previously entered by your customer. The best part of this, as mentioned previously, is that Stripe stores and protects this information for you. With your server, you can retrieve customer payment information at a later date. This makes for an improved user experience.

Also, with respect to user experience, Stripe allows you to customize your payment experience. You use Stripe code to process the information but where/when the information is gathered and how the view is designed is up to you. In iOS, a custom view created by Stripe is used to gather and validate the important credit card information. This view can be dropped in anywhere within your app when you’re ready to process the transaction.

I’m sure by now you’re thinking: “Okay, that’s great but what is it going to cost me?” Stripe charges 2.9% + $0.30 per successful transaction for their services. This includes everything, so there aren’t any storage fees for keeping customer information on the server or a monthly fee to use the APIs. The only other fee that you might incur is a $15 fee for a chargeback if one of your customer’s complains to the bank. The transaction fees are automatically taken when a transfer to your bank account occurs.

One of the downsides of this service is that funds are not deposited into your account until 7 days after the transaction was completed. According to the Stripe FAQ, this delay is used to help protect them from various risks associated with the credit card industry. This may not present an issue for your business if you have a steady flow of transactions, but just keep this delay in mind. Another downside is that, at this time, only companies in Canada or the U.S can use Stripe and therefore only Canadian and U.S dollars are supported currencies. However, this restriction only applies to businesses. You can accept payments from international customers as long as they use a Visa, MasterCard or American Express card.

That should provide you with a good idea of what Stripe is and what the system is capable. Let’s take a look at how everything works. The lifecycle of a credit card transaction can be broken down into the following steps:

1.  Client side app sends credit card information to the Stripe server

2.  Stripe server returns a token representing this card

3.  Client side app sends this token plus any necessary information (like name, address, purchase amount) to your server

4.  Your server creates a new charge based on this information and sends it to the Stripe server

5.  Stripe server charges the card and returns the result

6.  Your server returns the result to the client app


The provided APIs handle all contact with the Stripe server. This removes the complexities associated with securely transmitting sensitive credit card information. The only communications that you have to be worried with are the requests between your server and the client app. Stripe recommends you use SSL to complete this part of the transaction.

Now I will outline the general steps required to implement a simple Stripe system. I have created a simple shopping cart type of application on iOS to help illustrate the capabilities of the system. You can find it at:

https://github.com/danielmackenzie/StripeDemo

Client Side (iOS App):

1.  Go to https://stripe.com/ and create a new account

2.  Download the Stripe iOS bindings and add them to your project

3.  Create and programmatically add the STPView to your view controller (your test public key can be found under Account Settings from the online dashboard)

4.  Create token by sending information to the Stripe server

5.  Send the token and extra information to your server

6.  Handle the response

Server Side (Rails server):

1. Install the ‘stripe’ gem and add it to your Gemfile

2. Configure Stripe with your private authentication key (found through the dashboard)

3. (optional) Create a new customer with the provided information

4. Charge the card with the desired amount

5. Return the result to the client

For tutorials on how to write the code to implement this system, take a look at the documentation: https://stripe.com/docs or the example app. They provide detailed instructions on how to download and use the APIs for your platform.

And that’s it! Hopefully you now see how easy it is to get Stripe set up and configured. If you have any questions or concerns, feel free to send me an email at daniel@monolithinteractive.com


Loop Version 3 on the App Store!

Posted


Some time over the Holidays, Apple approved an update to our flagship app - Loop. To be fair, it’s not much of an “update” as it is an “extensive overhaul” of the underlying code, algorithms, and user interface. Loop is a musical app, but it’s also meditative/relaxing, so it’s been used in yoga studios, on the bedside table and it was even featured as part of an orchestral performance!

New features

• Updated user interface with new menus and buttons
• Simplified, more focused user experience
• More efficient code for smoother visual and audio rendering
• All-new theme packs combining new sounds with new background images
• Now fully universal - works on normal/retina iPhones, iPads and iPod Touch - even the tall iPhone 5
• Brand new app icon and logo

Get it FREE from the App Store today!


mHealth DemoCamp rocked

Posted

The first ever mHealthDemoCamp was a huge success. We have more than 30 mobile health experts and entrepreneurs in room CR-3 at MaRS, a highly informative keynote, 6 five-minute demos, great Q&A, and then about ten of us went out for beers afterwards.

Mobile health is big and growing to huge. Half of US doctors already own an iPad. Half of clinicians collect data at bedside with a mobile. Ottawa Hospital rolled out 4000 iPads. Startup Funding is up 70%.

  • Duane Bender gave us an expert tour of the eHealth and mHealth ecosystem in Ontario & Canada & the World. Mohawk MEDIC has received about $8 million in government grants for their work, and Duane seems to know just about everything about the space.
  • Sergio DiGiovanni demo’d Qcard, including the upcoming feature that allows sharing your reminders and tasks with friends & family.
  • Kristina Lugo showed Drishti, which uses a forms builder tool that I wish I remembered the name of, to allow workers in developing nations to use Android Samsung Galaxy S phones to collect important public health information.
  • Taha Bandukwala showed off eTHR, currently in testing at hospitals in BC, northern Ontario, and South Africa. Doctors can save time and improve their record-keeping (and thus reduce risks around insurance and litigation) as they work on trauma cases.
  • Nick Ragaz and his colleague started a great discussion by showing Wellx, a tool for secure doctor-patient communication. They developed it while running a business to outsource the data entry for doctors offices from paper into their EMR. Doctors who are using Wellx say that it reduces the amount of time they spend on the phone, and they hope that some day soon this time will have a special billing code.
  • Kelly Grindrod showed us Cleremed. Kelly is a pharmacist as has seen a need to test seniors’ ability to properly read medicine labels. Cleremed runs users through a simulation.
  • I demonstrated some of our work at Monolith.

We also had people present from many other organizations:

  • Coral CEA has grants available for developing mHealth apps.
  • UHN’s massive Centre for Global Health Innovation does eHealth and mHealth research, including the leading bant app
  • OntarioMD, the OMA organization that provides specifications for EMRs in Ontario
  • and many more — sorry I didn’t have enough time to take more notes!

Want more? Check out upcoming events: (and let me know about others)

  • Healthcare Startups TO, organized by Nick Ragaz, a great way to socialize and network
  • Toronto Mobile Health Summit, at the Holiday Inn Toronto Airport in January, although it’s a bit pricey for startups. Anyone want to sponsor?
  • AppsForHealth, in Hamilton, May 16.
  • Keep an eye on MaRS, who were awesome in providing the space to us for free.

Next: Lots of demand for a follow-up in 4-6 months, so watch this space (and follow @mHealthDemoCamp). If you’re interested in demo’ing at the next one, get a jump on the competition by letting us know now! (All demos are accepted provided they are mHealth apps :-)

Conclusion: there is a mobile health ecosystem in Toronto & area! Let’s keep growing together.

—Simon


Finger Wars - Available Now!

Posted


We’re very pleased to release our first game for the iPad. Finger Wars is a fun, 2-player game for iPad in which the fingers of two players become twisted together in an all-out battle of determination and control. The game is narrated by Yoshikawa, the loveable, yet angry ninja. Listen to him call out a food, then quickly place your finger on it and hold it there while your opponent receives his or her instruction.

Continue taking turns until the inevitable happens - one of you shall slip off of a food, immediately determining who is the loser and who is the winner. Play with a friend, your mom, your kids, your professor or even a real ninja! Compete to see who has the strongest will, and the strongest hands!

Oh yeah, and it’s FREE!!

Get it from the App Store.


mHealthDemoCamp

Posted

We’re hosting a mobile health apps event

mHealthDemoCamp at MaRS in TO on Dec 13 at 6.30pm

In the grand unconference tradition of DemoCamp, come see live demonstrations of mHealth apps at the event we are hosting at the MaRS Discovery District at University & College in Toronto.
Awesome demos include:

  • Duane Bender from the million-dollar Mohawk MEDIC eHealth & mHealth program
  • Taha Bandukwala from startup eTHR - mobile health records for Trauma doctors
  • Sergio DiGiovanni showing off Qcard, an amazing app that improves quality of life for people living with acquired brain injuries
  • More mHealth demos TBA!

The event runs from 6.30pm to 9.30, and is free. Please help us plan by signing up if you’d like to attend.

PS If you’d like to demo, or know someone who should demo, ask them to email us. Thanks!

Update Dec 6 - More demos!

  • Nick Ragaz will demo Wellx, an easy-to-use, secure way for Ontario healthcare providers and patients to communicate online
  • Kristina Lugo at Thoughtworks has a preview of Drishti, an app to help health field workers track the health status and treatments for couples, pregnant women, and children
  • Kelly Grindrod is working on Cleremed, an app to identify people over age 55 who have difficulty reading prescription labels


Older blog posts