Currently, I am working on a project where I have 2 buttons "Add 500 Points" or "Add 1000 Points" and when they press on it, they will pay 5$ or 10$ using in-app payment.
The user can pay multiple time by pressing the buttons.
As I am doing first time this type of work, kindly let me know how can do this in Android.
First of all you need to implement in-app purchase, follow this for more : Implementing In-app Billing
after purchasing any product, you need to consume product : Consuming In-app Products
mService.consumePurchase(3, getPackageName(), token);
for more code you can check here : Consuming a Purchase
you can even follow this tutorial for easy use of in-app purchase.
This question is tagged with "android-pay" so I thought I would add some clarification. Android Pay cannot be used to sell digital goods. If you are selling digital goods or virtual goods you should use the Google Play in-app billing service.
See Android Pay questions
Q: Can I use the Android Pay API for selling digital goods?
A: No. The Android Pay API cannot be used for selling digital goods, whether they are consumed on the device or outside the device. The Android Pay API may be used only for the sale of merchandise, goods or services provided to a Buyer outside a digital environment in the physical world. The Android Pay API may not be used for the sale of any digital content or services provided through any means.
Developers who want to sell digital goods should use the Google Play in-app billing service.
For more info, see Google Play in-app billing service
Related
We are going to build a mobile app for iOS and Android (might build a web app later) where users can upload videos and their friends and followers can watch them. The videos can be either free or also be tagged with a price. If I tag a video with $1 when uploading it, my friends and followers will have to first pay $1 to watch and after paying that $1 they can watch it any time after that.
My client wants to use Authorize.net to do the payments. In iOS there are restrictions like we must use IAP for such feature. Similarly is there any restrictions on Android as well, that we must use Google In-app Billing or is it OK to use Authorize.net to do the payments?
Taken from this page:
Payments
Apps that employ in-store or in-app purchases must comply with the
following guidelines:
In-store purchases: Developers charging for apps and downloads from
Google Play must use Google Play’s payment system. In-app purchases:
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).
In-app virtual currencies must only be used within the app where they were first purchased.
Developers must not mislead users about the apps they are selling nor about any in-app services, goods, content, or functionality
offered for purchase. If your product description on Google Play
refers to in-app features that may require a specific or additional
charge, your description must clearly notify users that payment is
required to access those features.
So I guess the answer is no, you have to use Google Play in-app billing if you want to publish the app in the play store. But the policy states that digital content under some circumstances is excluded, I guess this applies to videos as well, although I'm not to sure about it. Depends on whether the videos can be played outside of the app (at least so it seems).
I want to integrate google wallet in my application:
I need the below functionality:-
User can buy some coins from merchant application using google wallet .
For e.g. User will be given an option that 10 coins -- 1$.
so user will be redirected to his google wallet and payment of 1$ will be done from his google wallet to Merchant application's wallet.
User can redeem the coins to money in his google wallet . < This will be done automatically once the user's coin count reaches a predefines value say 1000.> So As soon as user's coins reach 1000. They will be converted to dollars and will be added in his google wallet.
As i did some research :
Google Wallet is available on Android in two flavors.
In-app Billing - used to sell digital goods:
http://developer.android.com/google/play/billing/index.html
Instant Buy for Android - used to sell real goods and services:
https://developers.google.com/commerce/wallet/android-overview/
I do not understand which one of the two serves my purpose.
Please guide me . Thanks
Neither of the two will serve your purpose fully, as neither will allow your second scenario (selling coins back for real money).
In-app billing will let your user buy coins and pay via the Play Store.
Instant Buy (Android Pay) is just a payment method you can use. You'll still need a payment processor (e.g. Stripe or Braintree). The payment processor may allow your second scenario as well, but this will not be handled by Android Pay.
There is no way to pay to a user's Google Wallet. Google Wallet can only be used to send money to friends and family, not for conducting any business. This functionality existed in the past, but is now fully integrated and rebranded into Android Pay (Instant Buy).
I got the answer for this question.
I needed to integrate In-app-billing. I declared my products on google developer console. And user can buy the products using in app billing service.
For Redeeming , google does not support peer to peer payment processing . So my application can not give money directly from merchant account to user account using google service . Google does not support it .
I needed to integrate Paypal for sending money to user account from merchant account.
I heard from someone that on App Store, everything you sell or anything the user buys, Apple must have their 30% on it. That would imply that even if you open a web page within the app and accept a donation, Apple must have its percentage. Otherwise you would have to redirect the user to make this donation outside of the app - for instance, calling the browser.
So, if it's true, I wanted to know if Google holds the same policies. I couldn't find this specific answer in the documentation, just info about in-app purchase (but I'm considering that scenario a purchase within the app, but not IN the app itself (sorry if it sounds confusing).
Taking Groupon as example. If you buy a coupon, is it an "in-app purchase"? I don't believe Google would take 30% on everything you buy there, so I just wanted to make sure it is according to their rules.
The app I'm working on will have both donation and coupon purchase from sponsors (Walgreens, etc). Is it ok if I do this through a WebView, or would I have to actually call the browser?
Sorry if my concept of "in-app purchase" is blurred.
Any information on this topic is much appreciated.
EDIT:
From my understanding, In-App Purchase (for both Google and Apple) is like an API that you use to process these payments.
What I find confusing is that, for instance, in the Apple's In-App Purchase Guidelines:
So, does it mean I cannot use Apple's In-App Purchase to sell my book (but could open my e-commerce site in the app and sell it), or I cannot sell my book at all inside my app?
I know it may sound like a dumb question, but it doesn't seem so clear to me.
The standard 30% transaction fee applies to in-app transactions on Google Play and goes to the distribution partner and operating fees.
According to the Google Play Developer Program Policies:
In-app purchases:
Developers offering virtual goods or currencies
within a game downloaded from Google Play must use Google Play's
in-app billing service as the method of payment.
Developers offering additional content, services or functionality within another category of app downloaded from Google Play must use Google Play's in-app billing service as the method of payment, except: >
where payment is primarily for physical goods or services (e.g., buying movie tickets, or buying a publication where the price also includes a hard copy subscription); or
where payment is for digital content or goods that may be consumed outside of the app itself (e.g., buying songs that can be played on other music players).
Reference: https://support.google.com/googleplay/android-developer/answer/112622
With In-App Purchase on iOS and OS X, you can offer your customers additional digital content, functionality, services and even subscriptions within your paid or free app.
For example, In-App Purchase will allow you to sell:
Digital books or photos
Additional game levels
Access to a turn-by-turn map service
Subscriptions to digital magazines or newsletters
Digital content hosted on Apple servers
There are four supported categories of In-App Purchase items that you
may sell: 1) Content, 2) Functionality, 3) Services, and 4)
Subscriptions. You must deliver your digital good or service within
your app. You may not use In-App Purchase to sell real-world goods and
services.
Reference: https://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf
I would have commented on another answer that is missing a bit of information, but as I lack the required reputation, I'll post this as a new answer.
It's 100% possible and allowed to sell physical goods or services in an app released on both iOS (via Apple Store) and Android (via Google Store), but the main difference between selling physical good or services and digital goods comes in the payment system to use. Both platform actually have 2 payments systems with, each, their own restriction and legal implementations.
In the case of Google Store (a.k.a. Google Play), it's as this:
Any digital purchases that adds anything into the app itself must be done through Google Play In-app Billing system. To put it simple, this is the typical in-app purchase you see in any game that charge onto the Credit Card registered by the user on the Google Play account.
Any Services and Physical Goods that are not set toward in-app usage have to use either your own version of a selling system (which has to be separated from Google Play In-App Billing system) or, if you want an more secure way, by using the Google Pay API.
The Google Pay API is really similar to the Google Play In-app Billing system as it allow any user to also use the credit card registered to their Google account (note that it's not Google Play, but a general Google Account), but the main difference is that the Google Pay API can also be used outside of an App (like on a website).
An example of stuff you must use the Google Pay API and NOT the Google Play In-App Billing system is to purchase physical goods (which requires a shipping address to be registered with the sell of goods) or services (like paying a rent of a room at an Hotel or the purchase of plane ticket, digital or not).
Here's the link toward the Google Pay API official website: https://developers.google.com/pay/api
For iOS and its Apple Store, the same equivalent exists, but the problem comes from the fact that both methods uses the same base system called Apple Pay.
For sells of goods and services, you need to address to the site "for merchants":
https://support.apple.com/HT204274
https://developer.apple.com/apple-pay/
For digital goods that are accessible directly through the app itself, you got to use the In-App Purchase system which is described here:
https://developer.apple.com/in-app-purchase/
There's one important thing you got to remember: Both stores might have some resistance to the idea of publishing an App as an App and as a Game. Both payment systems have their own rules and guidelines and, as such, if you are to put both a in-app purchase and an option to sell goods and/or services, both has to be visually separated and must NOT be mixed from one to another. For example, they might refuse to publish a game that has only physical goods to sell or an App in their Store app that is more of a game with in-app purchases and barely any instance of real-good purchases.
The cost of using either Google Play In-App purchase or Apple Pay In-App purchase is 30% of the sales.
On the other hands, Apple Pay for merchants (physical goods & services) have no additional cost from the credit cards issuers' fee which is usually around 3% to 6% based on the payment methods. For example, if the user is using Paypal to pay on Apple Pay, it's 2.9% + $0.30 USD per transaction. Direct Mastercards and Visa users might pay up to 6%. This is done and managed directly by Apple Pay.
Google Pay (for merchant) is also free and come with a fixed percentage rate of 2.9% per sales with credits cards and, in some countries, offers free transaction for direct-bank-transfers and debit cards.
In both cases, there's a limit per transaction. Google Pay has transaction limits, but their depends on the shops and user (shopper) data. I have seen the number $10,000 often as a limit per transaction.
Apple, technically, has limits or security based on the country where the purchase is placed. (All numbers are here: https://support.apple.com/HT207435 )
Can anyone please tell me is there any need to pay Google play for m-commerce application.If yes,please tell me how much we have to pay for that.I want to know the case of apple too.I am new to this area..So please help me.
For Apple: If your app sells physical goods, there is no need to pay apple, but you should implement your billing system. If you sell non-physical goods (like digital content), you have to use In App Purchases. Apple gets 30% and you get 70%.
For Google Play:
In-app purchases: Developers offering virtual goods or currencies
within a game downloaded from Google Play must use Google Play's
in-app billing service as the method of payment. Developers offering
additional content, services or functionality within another category
of app downloaded from Google Play must use Google Play's in-app
billing service as the method of payment, except: where payment is
primarily for physical goods or services (e.g., buying movie tickets,
or buying a publication where the price also includes a hard copy
subscription); or where payment is for digital content or goods that
may be consumed outside of the app itself (e.g., buying songs that can
be played on other music players). Developers must not mislead users
about the apps they are selling nor about any in-app services, goods,
content or functionality they are selling.
My application is used to buy journey tickets. The ticket price is different everytime. Can I use In-App Billing to make the user pay a custom price everytime? If so how? i.e. can I set the price which the user has to pay programmatically?
You cannot programmaticaly change the price of a product using Google Play In-App Billing .You could fix the price in the Android developer Console .If you still want to custom price at the runtime you could use PAYPAL for that :
https://www.x.com/developers/paypal/products/mobile-overview
You cannot use Google Play In-App Billing to make the user pay a custom price.
Moreover you cannot use Google Play In-App Billing to sell physical goods and services like journey tickets:
You can use In-app Billing to sell only digital content. You cannot use In-app Billing to sell physical goods, personal services, or anything that requires physical delivery. Unlike with priced applications, once the user has purchased an in-app product there is no refund window.
http://developer.android.com/google/play/billing/billing_overview.html
Your use case perfectly fits the Google Wallet Instant Buy API for Android. Google Wallet Instant Buy API for Android is specifically for physical goods and services and has a simple integration into your Android App. It was launched during Google I/O 2013 and you can get an overview at the following blog post:
http://googlecommerce.blogspot.com/2013/05/fast-and-easy-checkout-for-android-apps.html
Also, please checkout the Google I/O Talk on the same topic
https://developers.google.com/events/io/sessions/330844794
Since this is still in beta, if you're interested please sign up using the interest form
http://getinstantbuy.withgoogle.com/