My company would like me to manage paid Android applications in Android Market but not have access to the linked google merchant account. This is a very reasonable request but there seems to be no way to accomplish this. According to google docs the same google account must be used for the market and merchant account therefore if I have access to one then I have access to the other.
How do other corporations deal with this? Am I missing something?
If the company uses google-apps (see here), it can create an account for you and revoke/grant the particular service.
Related
In my android application I want to let users to authenticate with google or facebook account.
I've implemented sign-in with google already.
I'll try to implement sign-in with facebook soon.
I've read about IAP in android:
https://developer.android.com/google/play/billing/billing_overview
https://droidmentor.com/inapppurchase-subscription/
at least what I understand it is about google account authentication.
So I wonder is it possible to make IAP in android application if the user is authenticated with facebook account ?
I cant find examples or explanations by now.
Any good examples/explanations about IAP with google is also very appreciated because I still don't have a clear vision on IAP.
fyi: In my app user will be able to buy "virtual tickets pack" (e.g.: 10, 15, 20 tickets) and to add them to their profile. and later they will "consume" tickets one by one.
Best Regards
My understanding is that you already have a user system that you are using to provide a Google login to your customers. When you add Facebook login, you'll probably want to match both Google and Facebook logins with your own custom user ID. It's always a good idea to have a custom ID of your own so that you can map it to different types of logins.
When purchasing through Google Play Billing, the purchase gets associated with the user's phone Google account and you can also provide an optional way of associating a purchase with your own user account system. In order to do that, when building the BillingFlowParams, call setAccountId and pass your account's system custom ID.
To provide the best experience persisting purchases during installs or across devices you should also be saving the purchases on your server's database. In order to do that in a secure manner, you will also have to implement server-side receipt validation. If you want to avoid most of these headaches, I recommend you to use a service like RevenueCat.
IAP can only be done through the user's google account, as that is what one needs to use any part of the Play Store. The user's google account is also where the credit card/other payment methods are stored for each user.
In spite of the above, the way users log into your app has nothing to do with them using the IAP system. When a user will choose to use an IAP, the google account data will be provided by the android device/Play Store, not by your app (Off subject:the process is similar on iOS if you ever get to try there).
What your app needs to do, is receive the confirmation of purchase from the IAP sdk and then mark on your server that this particular user has purchased this item. Basically for any purchases (no matter the payment provider) you would usually mark in your DB the following:
what the user has purchased
how much did he pay
when did he pay
provider's id of the purchase, so you can later match the accounting reports with the payment provider's report
where he payed from (IP can be a good indicator, although in the age of VPNs not necessarily 100% acurate)(this can be useful for your marketing decisions)
mark that this user now has access to the item he purchased and if it is a time limited item, mark when it expires, so you are able to later check if he still has the right to access it.
Disclaimer:
I have not used the android IAP system directly before. I have implemented mobile app payment systems before using iOS IAP and on android Braintree payments. But the process is most likely very similar with android IAPs as well.
This question has already been asked a lot of times but no complete/detailed answer has been provided so far.
I'm not sure if this is the right place for this question. I need to configure the Google Developer Console (and Google Wallet as well) in order to sell apps in Play Store. As you probably know Google has a list and not all countries are easily allowed to sell applications. However, there is one workaround using Payoneer and Google Wallet in order to get money from the apps sold. Basically you need to obtain an account in Payoneer and apply for "US Payment Services", doing this you will get a banck account in the US, after that you will need to create a Google Wallet Merchant Account and here is the problem:If your country is not listed in Google as an allowed location you will need to change the configuration in Google Wallet to an US address (you can get one in usbox.com for instance) and after that you will be able to create the Merchant account. The problem is that sells in Play Stores fail even if these steps were completed. I think that the problem is that I cannot verify my identity because I don't have an SSN or ITIN number.
Does anyone have more experience about this or know the required steps and configuration for Non-US Residents?
There is no general answer because if you are not a US resident, it still depends on your country. Depending on your country, you may get paid through wire transfer:
https://support.google.com/googleplay/android-developer/answer/2700656?hl=en
This applies to many but not all non US residents.
The general process is described here:
https://support.google.com/googleplay/android-developer/answer/173779?hl=en
I am creating an Android application that will offer users a subscription option if the user has his credit card information stored in their device. If he does not, I am thinking about offering different methods for the user to use the application.
Does anyone know if there is a way to check if a user has his credit card information stored in their device?
To clarify what I am looking for:
Android devices allow users to store credit card information so they don't have to re-enter the information for every purchase. I'm talking about identifying that the user has that data stored. I am not talking about storing that information myself for the user or trying to get it. All I need is a boolean method that will tell me if the user has the data stored or something similar.
Credit Card information isn't really stored "on the device." In the case of devices that are connected to the Play Store, Google account credentials are stored and payments are made through Google Wallet. I don't have a lot of experience with other types of devices, but I imagine they all work in a similar fashion, for example a Kindle Fire will keep Amazon account credentials, etc.
If you're looking to create an application that provides in-app purchases and will be available on the Play Store, you can click here to read about Google's In-App Billing API that allows your users to use their Google Wallet to make payments. For Kindle Devices, Amazon has a similar API.
It would be a pretty major security concern if arbitrary apps had access to the device owner's credit card information. If you're writing an app that you intend to distribute outside of a reputable app store and therefore without a built-in in-app purchase api, you're going to have to use your own payment mechanism. If this is the case, I wouldn't recommend creating your own. I believe PayPal has an Android API, and a quick Google search came up with a few other less notable brands that offer this service, though if you do intend to use the Play Store or Amazon's app store, using a 3rd party payment API usually goes against their terms of service.
Edit: The AccountManager class allows you to view info about accounts on the device, however, I don't believe that you can use it to discover if the user has a payment method set up through Google Wallet. I found this SO question that goes into detail about what the AccountManager can be used for. If this is a Play Store app, I'd look into the Google In-App Billing API, it's probably the best option for what you're trying to do.
I'm creating an app that will need users to create an account. (Like Facebook or Twitter would require you to.)
BUT, since it's an Android app, should/can I let them sign in with their Google Account using AccountManager or some other service? It'd be very helpful if they could just sign in to their Google account and their settings and other options would be saved to that account.
Main questions summed up:
Is it possible to let a user just use their Google account in my app?
If so, do I use AccountManager to have them sign in and save account information/settings?
What are other options?
Yes, you can get users to log into their Google Services using their Google credentials, for example, I have an app on Google Tasks and I use the Android AccountManager to let users authenticate themselves using their Google account on the android device (No need for users to enter their password!)
There are some really good examples to get you started:
This is an in-depth look into how you can authenticate based on the users Android credentials, has an example of how things work and how the UI should be: http://www.finalconcept.com.au/article/view/android-account-manager-step-by-step-2
This is an example of getting AccountManager to work with a Google service like Google Tasks: https://developers.google.com/google-apps/tasks/oauth-and-tasks-on-android
The last example is using the same concept for accessing the Google Picasa service: http://code.google.com/p/google-api-java-client/wiki/AndroidAccountManager
The other options you have is to have users manually enter their username/password. For that you have to use a third party authentication API (like signpost for OAuth) for them to log in.
In my tasks/todo application I provide users both options to sign in, using their android credentials or using third party authentication for users that want to log in using some other account (an account which is not enabled on that device)
Let me know if you have more questions
Although it is a new development, Google Plus Sign-in introduced as part of Google Play Services can also be used. More info can be found at Android developers blog. See example implementation from Banjo app
There seems to be a big limitation - The user need to have Google+ app installed on the device to use this.
Also this is a pretty good blog if someone is interested in implementing the solution.
#Soham gave you some very useful links but he didn't correct one major error: AccountManager is the entity that manages the accounts on your Android device - it has nothing to do with your google account! you can use google account and create a NEW account on your device using the AccountManager.
The rest you can learn from the links Soham gave you.
I'm an Android developer and I already have an Android market publisher account. There are a couple of apps in my account.
I have an idea to create a little Android development brand(company)
and publish those new apps in a new publisher account.
So I want to know that is it legal having two Android Market publisher
accounts for the same person. Will I get into any trouble?
Also will Google suspend me if I use push ad networks like Airpush and leadolt?
Thanks a lot.
I don't see a problem with an individual having multiple Android Market accounts. Each will need to be tied to a different Google ID (email address). They may also have to be tied to different Google Checkout merchant accounts, although I don't know that for sure.
You cannot publish the same app (as determined by the package name declared in the manifest) on two Android Market accounts. You can ask support to transfer an app from one account to another.
I have no idea about using other ad technologies. I suggest that you ask the Android Market people directly. See this page for support info.
I don't think google will block app if you use Third party Ad-Suppliers.
I have been using TapJoy Ad service for an year.