Is there any consensus on what the best payment apis are for use with Android and in app purchases?
Googling for 'Android payment api' there's tons of hits from, paypal, sms, to credit card companies, etc. But most of those articles are years old. Also, many articles refer to Google Checkout not being worldwide (those too are typically years old).
If you have experience on Android with in app purchases.
Is Google's In-App billing now the preferred way to handling billing in the Google Play Market?
I'm aware Amazon's store has a completely separate billing system.
Basically I'm asking circa 2012, has there been any convergence on in app purchase options for Android or is it still the wild west.
If you release your application on Google Play, you should probably use Googles own in-app billing APIs. The Google Play Developer Program Policies state that only authorized payment processors may provide in-app billing, but I don't think there is any official list of them. Therefore it's a bit unclear which ones Google will allow in the future, but using their own alternative should definitely be safe.
Related
I’ve built a SaaS website with subscriptions, enabled by an external payments processor (which could be Stripe, Braintree, Paddle, etc.).
Now this website for my SaaS has been packaged in a small WebView wrapper and is about to be released as an Android app. But on the Stripe website, I found this:
Google’s developer terms require that purchases related to the app, such as premium features or credits, are made via their native In-app Billing API.
– https://stripe.com/docs/mobile/android
Diving deeper into Google Play’s terms, you can find this (emphasis mine):
Developers offering products within a game downloaded on Google Play or providing access to game content must use Google Play In-app Billing as the method of payment.
Developers offering products within another category of app downloaded on Google Play must use Google Play In-app Billing as the method of payment, except for the following cases:
Payment is solely for physical products
Payment is for digital content that may be consumed outside of the app itself (e.g. songs that can be played on other music players)
– https://play.google.com/intl/en/about/monetization-ads/
So that seems more permissive than Stripe’s interpretation, and since my SaaS is not a game and can be used via a generic web browser as well, my understanding would be that using an external payments processor instead of Google Play’s billing is fine.
On the one hand, this would mean that most digital services could avoid Google Play’s billing and use something else, which seems (too) fair on Google’s part. On the other hand, this excludes games, which Google can generate a lot of revenue from, so it may be reasonable again.
This is not a legal question, and the answer could not be found in legal literature or by asking a lawyer, anyway. Instead, it’s entirely up to Google’s discretion whether using an external payments processor is allowed or not, based on one’s interpretation of the terms presented above.
So instead of legal advice, I’m looking for practical guidelines and examples of real-world usage that supports any interpretation of the terms above.
One example that I’ve found is Dropbox: Having downloaded their app on Android, Dropbox allows me to select between two payment methods: Google Play, or debit card on Dropbox’s own site. This seems to support the more permissive interpretation of Google Play’s terms.
Another example is Spotify, which opens a WebView where you can choose from several payment options, none of which is Google Play. The app still has Android’s permission for in-app purchases, though, which is also disclosed in the Play Store, so perhaps they’re using Google’s in-app billing in specific countries only.
Are there any other real-world examples?
There are such apps. Various network providers for instance, one could argue that ability to use phone calls or internet is not a physical good. Specific example would be Skype, which allows buying skype credit from a webview within the app.
But I think a good example for you would be WPS Office android app, which suggests upgrading to premium with an in-app subscription or a credit card payment.
For sure, all (real-money) poker application are real-world example. (pokerstars for example)
I had never seen a poker application which use Google Play Service for billing. (maybe for legal reason)
They are using an hosted web-page (in a webview or in an encapsulated builtin web-browser) to treat payment processing on their side, which allow end user to select a payment methods in a big list.
Note that in that case you have to treat by yourself the user balance (which implied to treat all the security on payment processing on your side)
I think the mobile banking applications is simple example one of them. You can pay your bills, send money via mobile banking apps. But there is no need to use Google Play Service for billing. The all transactions will complete on the banking side. You can even send money directly to some betting sites. (If you want I'll share with some mobile banking apps for this features but you need to login, you have to be customer of the app owner bank)
I just want to share it for an idea, I think you can build your own crypto currency with Ethereum infrastructure called smart contracts. Its really easy to deploy. You can find 10mins tutorials for this. You can use as a money in your mobile app. In this way If someone need to be buy something they have to be purchase some of your crypto currency. And the google side you will be exception because of this,
"Payment is for digital content that may be consumed outside of the
app itself (e.g. songs that can be played on other music players)"
But as you said,
it’s entirely up to Google’s discretion whether using an external payments processor is allowed or not, based on one’s interpretation of the terms presented above.
I'll signing under this.
You can also examine crypto stock market applications. I can bet they did not charge Google Play commission
Some of the information is not exactly what you want, but it's just for sharing ideas.
I think Quickbooks by Intuit (accounting software) is an example of a SaaS solution which, I believe, does not go through Google:
https://play.google.com/store/apps/details?id=com.intuit.quickbooks
Another example is Invoice2Go
https://play.google.com/store/apps/details?id=com.invoice2go.invoice2goplus
These solutions are available through different devices (iOS and Android) and thorough web. It doesn't make sense for Google to take a cut since the Android app is just one of many different user connection options, just like Google's songs/music example.
Our game relies on in-app purchases. Currently they use the Google's own system for that. But we get many requests from smaller app markets around the world to put our game there. But not having in-app purchases would seriously cripple the game mechanics.
But from what I've searched, there doesn't seem to be good alternatives. Amazon has it's own, but it's in invite only beta phase. Samsung apparently has it's own.. I would love to find a simple micropayment SDK to use in all these smaller app markets.
Any ideas?
PayPal should work, although you will need to do some work to implement managed items on your own server. Some of the major 'smaller' markets have their own API on top of PayPal.
BTW, Amazon's in-app purchase library has been publicly available for a while: http://www.amazonappstoredev.com/2012/04/announcing-the-in-app-purchasing-api-for-kindle-fire-and-other-android-devices.html
I am still looking for third party "in-App billing and subscriptions mechanism" but It would be worth taking your point of view on this.
I looked into "Google Checkout Beta Features" (http://code.google.com/apis/checkout/developer/Google_Checkout_Beta_Features.html) but it is in beta stage, Do we have other reliable alternatives for android market which could serve the monthly subscription.
Thanks!!
You can now support in app subscriptions:
If you have done in app purchasing of products before it's not much of a change, have to check for version 2 of the billing/vending though.
See the android developer blog:
http://android-developers.blogspot.se/2012/05/in-app-subscriptions-in-google-play.html
You might want to take a look at PayPal's Mobile Payment Library. I'm not sure how well it supports subscriptions, though.
My company has an app that is available both in the Google Market and the Amazon Appstore. We're now looking to implement DLC in-app purchases. This is no problem with Google but it looks like Google doesn't allow 3rd party app stores to use their in-app billing system.
Since we were free the first day on Amazon and have considerable users who downloaded our app freely we're trying to implement pay-DLC on Amazon to recoup the lost revenue. Google aside, I'm sure there are other ways to handle in-app purchases, any suggestions that people have had experience with that involve simple, streamlined, & secure APIs for this?
Amazon Appstore for Android does not yet support In-App Purchasing (aka In-App Billing). However, there is a beta of an SDK they are developing, and access to that SDK is by invitation only (again, as of this writing). You can sign up here:
http://www.amazon.com/gp/html-forms-controller/AmazonAppstore-IAPrequest
I am not aware of being able to use in-app purchases to buy from the Amazon Appstore. (I would post this as a comment but I can't seem to find the comment button.)
The only thing I can think of would be to update your application to look for files outside of your app - specifically additional content. An example would be PowerAmp, where it can use an unlocker to keep going, but it would be more useful... However, I don't think the app-store lets you do that.
You might just have to stick to the market.
Amazon's In-App Purchasing API (IAP) is publicly available. You can download the Amazon In-App Purchasing API, Documentation, sample code, and testing tools here:
https://developer.amazon.com/sdk.html
*Opinion's expressed are my own, not my employer's. For official Amazon Appstore policies and guidelines, please refer to http://developer.amazon.com
Edit: Android now supports in-app billing!
Original question:
It looks like Android won't natively support in-app purchases for a while, and when it does there might be a huge user base with devices that don't support them.
What's the best way to implement iPhone-like (additional content or services) in-app purchases in Android using the Android Market if possible?
The solution should consider in particular:
For all kinds of in-app purchases: Android Market's 24-hour cancellation policy
For consumables/non-consumables: storage of additional content (ie: use precious application memory to avoid piracy, or use SD card to avoid bloating application memory)
Thanks!
This has changed as of today! There is now an example on the Android Developer site here: https://developer.android.com/google/play/billing/billing_overview
You can create a premium key application, that will have a key. How you expose that it's your deal ( or you can just check if PremiumKey activity exist ). From the main app you just check for your key and if it's exist enable premium option )
If you're talking about buying OTHER apps from yours - build your list with market url pointed to the other apps ( market:// )
It is against the Android Market Developer Distribution Agreement to take in-app payment:
3.3 ... All fees received by Developers for Products distributed via the Market must be processed by the Market’s Payment Processor.
Looks like Paypal has launched a library for accepting in-app payments. See here. Not sure if this system violates the T&C though.
You say that Android Market doesn't support in-app purchases, and then ask how you can implement in-app purchases using Android Market?(!)
Anyway, if and when they do support it, I imagine it could be distributed as an update to the Android Market application itself, so most users would be able to use the functionality. I believe the Market app updates itself automatically.
Possibly the Market would accept an Intent to trigger a payment via the usual on-device mechanism and return your app (or more likely your server) a callback.
There is also another in-app payment platform for Android applications called MoVend (www.movend.com). I have checked it out and there are several benefits using it compared to the other 2 mentioned earlier:
Many payment channels : Operator Billing for more than 38 countries, PayPal and virtual credits.
Many distribution channels: They work with developers to distribute their applications through the various distribution channels like Operator AppStores , OEMs and Android applications website. Marketing is something we all need. They are also invested by Singapore Telecommunications who has a strong presence in South East Asia.
They provide a sales analytics for you to track, trace and monitor the performance of your apps. Since they are available worldwide, you can always tailor your applications to the different geography area.
I am trying to build Android applications and monetizing is important.
Reply this thread so we can discuss how we can monetize our Android applications.
Here's another free licensing and payments system. The nice thing about this one is that it allows you to offer your app in any app store.
You can find more details # http://www.cloud4apps.com/
Check out http://mobpaynet.com, they are doing something like this. Not sure if it violates terms or not, but I will probably check it out.
For implementing in-app purchases in Air applications you may use third-party libs (Adobe AIR does not support In App Purchases for any platforms out of the box). For example, developed by Milkman Games (unfortunately, they are not free)