@Wizem: I did a little more digging into the Kindle iPhone app, and apparently this is the whole scoop:
* Originally, Kindle submitted the app with their own purchasing system within the app, and it got rejected. They were told they need to remove that feature, so they did and Apple approved the app. So the Kindle iPhone app is basically a Kindle book viewer.
* Kindle doesn’t use Apple’s IAP StoreKit because that means they would have to give up 30% of their sales to Apple (I’m sure their profit is already split up as far as it could go so I’m sure they pretty much CAN’T use Apple’s Storekit).
* Instead, within the Kindle app, there is a button that opens up Mobile Safari and takes you to the Kindle store, where you can purchase books that get added to your Kindle account. When you open up the app, the books you purchased through Mobile Safari are viewable in your app (e.g. they are “unlocked”).
So basically, when you open the app, it contacts the amazon server, checks your account for your “premium content” and then allows you to view it through the app. That’s premium content, plain and simple. The books aren’t physical, they are *virtual goods*.
Since we are in the business of searching for ANY kind of in-app purchasing solution until Corona implements the feature full-on, I think we can really learn from Amazon and their Kindle iPhone app (remember, they were rejected for having an “alternative” to in-app purchases within their app, so they implemented it outside of their app and are getting by just fine–I don’t see why we can’t do the same).
With that said, here is my “proposed” workaround that should be no different from the way the Kindle app works. Of course, this is WAY worse than having the real-deal In-App Purchases, but it’s definitely better than having nothing I would assume.
For the sake of the example, let’s say you’re making a “farmville” type app, where you can purchase farming supplies or whatnot to progress.
* When they first launch the app, they create an account as simple as possible… or you can even integrate it with a Facebook login. You have your own online server that your app contacts and it creates their username/password and stores it in your database. That same database will track what premium content they have purchased (more on that in a moment).
* In the app, you have your own virtual currency (as many games do, nothing wrong there) where you can purchase from an in-game store. We’re still in the green area since we’re not dealing with real money at this point.
* You earn more currency as you progress in the game, but it is a long, tedious process.
* In your in-game store, there is a button that says ‘Get More Gold’ (or whatever your in-game currency is called). And where your in-game items/supplies are listed, there is ANOTHER button that says ‘Get Even More Supplies’. No premium items are actually displayed, all the items that are listed are all things that can be purchased using the fake currency, if they want to work for it.
* When they click the ‘Get More Gold’ or ‘Get Even More Supplies’ button, it warns them that they will exit the app and a web browser will show. If they click yes, you save their game state and then open up Mobile Safari to an iPhone-optimized website that lists all kinds of premium items, gold, etc. that they can purchase and have added to their account on your server.
* You conduct payments with any kind of mobile transaction system (google checkout, paypal mobile, amazon, whatever), and when they’re done, they open their app back up and the app contacts the server to make sure that their local app is synced with the items in their account. If not, it simply sets a variable switch in the app to enable certain items (that were not previously shown within the in-game store, but were available in the ‘web store’).
As far as handling the database and communicating with the app, I would personally use PHP/MySQL and a cloud-server such as http://Kodingen.com (which starts off free, just like Google App Engine, and is very affordable once your bandwidth increases… but if you just use it for simple MySQL/PHP transactions then it would take A LOT of users before you have to start paying). But that’s just what I would use, you could obviously use anything you want. You just need SOMETHING to communicate with your app letting you know what the user purchased through your “web store”.
Like I said, I don’t see how that differs AT ALL from the Kindle app.
The Kindle app allows you to view premium content from your Kindle account, that you purchased on the web. Within the app, you can’t browse the premium books, but there is a ‘Get Books’ button which takes you to Mobile Safari where you browse the premium content and purchase whatever you like to your account.
Please let me know if you see any red flags in that whole process I described, Wizem.
I know it’s a HUGE hassle, and something that will likely not be nearly as effective as actual in-app one-click purchases… but it’s better than not having ANY in-app premium unlockable content in my book.
Let me know what you think!
I just hope the Ansca team surprises us and has a new release soon with in-app purchasing
… I think, since Android is open in a lot of ways, that they could bind some kind of in-app purchasing function in Corona to something in android that would match apple’s service similarly. [import]uid: 7849 topic_id: 475 reply_id: 6878[/import]