Architecture for paid app & limited access to backend server services - Android Software Development

Hi,
How would you architecture your app to allow access to your backend server services to just the users that paid for your app? I understand there's the Google Play Billing Library, but how do you get from there to identify the user on the server?
Tks,

OK, it seems this thread has some good ideas:
How to verify purchase for android app in server side (google play in app billing v3)
I have a simple app (needs user login with account). I provide some premium features for paid users, like more news content. I need to record if the user has bought this item in my server database...
stackoverflow.com

Related

Google Hosted Blackberry Application for Mail on Hermes?

I have just noticed that Google have released a Blackberry application for their Google Mail Hosted service for domains.
They suggest users visit m.google.com/a on their Blackberry for further info.
This doesn't work on a Hermes device, as the browser is recognized as not being a Blackberry.
Does anyone know if it is possible to use this (or some other way) to access GMail *hosted* accounts using push in some way?
Bump.......................
could you provide a link to where it gives the software application? (apart form the visit on blackberry site).
I wish I could, but unfortunately I can't!
Unless anyone knows how to fake the User Agent in an http request, to fool Google into thinking that I'm using a Blackberry browser? That may trick the site into allowing me to download the app and grab the correct URL of the file...
Christos said:
I wish I could, but unfortunately I can't!
Unless anyone knows how to fake the User Agent in an http request, to fool Google into thinking that I'm using a Blackberry browser? That may trick the site into allowing me to download the app and grab the correct URL of the file...
Click to expand...
Click to collapse
ok, i went ahead and did some playing around. first i changed my firefox user agent to blackberry, went to the site. it made me download a small java descriptor (attached). that linked to a JAR download location which i downloaded.
it does not install though, says failed to install midlet.

Paranoid: How can I monitor app web access on my phone?

Some applications store sensitive information and have internet access. For example, there are apps that ask for your Google account to back up SMS messages or access Google Reader.
I'd like to know that my password is only going to Google and not to some third party server database as well. Paranoid, yeah. But if someone gets your Google account they could practically have free reign on your life with password resets and the like.
Is there a way to monitor this traffic, or maybe even a sort of firewall app that notifies you when a secure data string is being sent over the net?
(On a related note, I can't believe Google hasn't provided a secure way to authenticate without forcing developers to ask for login information yet)

Could Company Apps Setting Be Exploited In Some Way To Sideload Homebrew Apps?

Forgive my noobness if this sounds stupid but was looking at the company apps setting on my Lumia 928 and was wondering if it could be exploited in anyway as far as sideloading homebrew? Out of curiosity, not that I expected it to work, I emailed myself a .xap file and got an error saying there was something wrong with my company app and to contact the company's support person. So went to company app settings and it asks for email,password, username,domain, and server but does it actually check the authenticity of the domain and/or server for a legitimate company or could someone simply set up a server hosting .xap files to be downloaded simply by registering and logging in with these settings? Even wondered if I simply used this info from the email server if it would install through email but seems too simple and haven't messed with it.
tonbonz said:
Forgive my noobness if this sounds stupid but was looking at the company apps setting on my Lumia 928 and was wondering if it could be exploited in anyway as far as sideloading homebrew? Out of curiosity, not that I expected it to work, I emailed myself a .xap file and got an error saying there was something wrong with my company app and to contact the company's support person. So went to company app settings and it asks for email,password, username,domain, and server but does it actually check the authenticity of the domain and/or server for a legitimate company or could someone simply set up a server hosting .xap files to be downloaded simply by registering and logging in with these settings? Even wondered if I simply used this info from the email server if it would install through email but seems too simple and haven't messed with it.
Click to expand...
Click to collapse
this would work, but theres a lot you have to do to set it up:
There are some general steps that companies must follow to establish a company account, enroll devices, and distribute apps to their enrolled devices. The following sections provide an overview of this process:
1. The company registers a company account on Windows Phone Dev Center and acquires an enterprise certificate from Symantec.
2.The company creates an application enrollment token (AET).
3.The company develops a Company Hub app.
4.The company prepares their apps for distribution.
5. Employees (or other users) enroll for company app distribution on their phones and install the company apps by using the Company Hub app.
you have to use intune director. Companys have to register with windows phone dev and aquire an enterprise cert. This *could* be a way to install homebrew apps, but it'd be easier if there was some kind of workaround.
more info here..
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206943(v=vs.105).aspx
Thanks aclegg2011 and my apologies to the Forum Administrator as I just saw a similar post in a different section.

android app, google playstore and hosting

hi there,
I am developing an android app and need to educate myself on how android apps are hosted.
So I read this site:
http://developer.android.com/distribute/googleplay/start.html[^]
and this site:
http://developer.android.com/distribute/tools/launch-checklist.html[^]
but my question is:
does my finished android app need to be uploaded and hosted on a server?
so when I finish developing it and am ready to deploy to google play store, do I upload my entire app on "my rented server" and then within google play store point to it?
for those of you that have uploaded apps to google play store I would really appreciate some help
another question: the android app I am developing when it opens retrieves a list of names from a database, I currently use XAMPP in which I have created a MYSQL database with a table that contains the names. When I am in my house, I can retrieve the list of names no problem using wifi or just 3g on my phone. However if I am outside and my XAMPP is turned on and then I try and open my app the listview of names is not populated.
Why is that? I am thinking its because my app is not hosted on a server itself, just the database with the names that are used in the listview grid is...
To put an app on the play store you need to upgrade your Google account to a developer account. This costs £20 if I remember correctly and allows you access to the developers console where you upload the finished app in apk format and fill out the description fields etc.
Sent from my HTC One using Tapatalk
thanks for your reply....
sure I had read what you mentioned on googles developer site.
what you are speaking about is uploading my app to google play store.
do you have any idea about these 2 questions I raise:
but my question is:
does my finished android app need to be uploaded and hosted on a server?
so when I finish developing it and am ready to deploy to google play store, do I upload my entire app on "my rented server" and then within google play store point to it?
for those of you that have uploaded apps to google play store I would really appreciate some help
another question: the android app I am developing when it opens retrieves a list of names from a database, I currently use XAMPP in which I have created a MYSQL database with a table that contains the names. When I am in my house, I can retrieve the list of names no problem using wifi or just 3g on my phone. However if I am outside and my XAMPP is turned on and then I try and open my app the listview of names is not populated.
Why is that? I am thinking its because my app is not hosted on a server itself, just the database with the names that are used in the listview grid is...
Click to expand...
Click to collapse
xirokx said:
thanks for your reply....
sure I had read what you mentioned on googles developer site.
what you are speaking about is uploading my app to google play store.
do you have any idea about these 2 questions I raise:
Click to expand...
Click to collapse
For the first question
does my finished android app need to be uploaded and hosted on a server?
Click to expand...
Click to collapse
I'm assuming that when you say server, you mean your own server? If so then no, you can use the Google developer console to upload your app, which uploads the app to Google's servers and therefore can be viewed through the play store (if you choose to put the app in a "published" mode).
Second question:
so when I finish developing it and am ready to deploy to google play store, do I upload my entire app on "my rented server" and then within google play store point to it?
Click to expand...
Click to collapse
Again, no. The only way to get apps to show up on the Play store is by getting a developer account and using the Google Play Developer Console to publish your app.
Third question:
another question: the android app I am developing when it opens retrieves a list of names from a database, I currently use XAMPP in which I have created a MYSQL database with a table that contains the names. When I am in my house, I can retrieve the list of names no problem using wifi or just 3g on my phone. However if I am outside and my XAMPP is turned on and then I try and open my app the listview of names is not populated.
Why is that? I am thinking its because my app is not hosted on a server itself, just the database with the names that are used in the listview grid is...
Click to expand...
Click to collapse
The database needs to be running on a live site for you to retrieve it from anywhere.
thank you so much for your help, i really appreciate it....
can you help clarify a little further please?
currently I use Eclipse to develop in, XAMPP to host my database and a fileserver that hosts my files.
So when I debug, is the process like this:
myPhone(includes apk file) --> XAMPP(stores names and URL) --> FileServer (Retrieves URL to display in my app)
I'm assuming that when you say server, you mean your own server? If so then no, you can use the Google developer console to upload your app, which uploads the app to Google's servers and therefore can be viewed through the play store (if you choose to put the app in a "published" mode).
Click to expand...
Click to collapse
so does the process when I upload my app to Googles Server look like this:
MyPhone ---> Google Server( to retrieve apk) --> FileServer (to retrieve URL to display in app)
have I understood correctly?
If so then no, you can use the Google developer console to upload your app, which uploads the app to Google's servers and therefore can be viewed through the play store
Click to expand...
Click to collapse
if the above process that includes google server is correct, is there a way I can upload my app to google server without releasing on play store for debugging purposes.
Currently I use XAMPP to host my database on my PC, does this mean I would need to upload XAMPP on google server so that it can retrieve the names and URL I have stored in the phpMyAdmin SQL database?
If the answer to the above is yes, does this mean I need to upload XAMPP to Google Server so it can connect to my FileServer?
The database needs to be running on a live site for you to retrieve it from anywhere.
Click to expand...
Click to collapse
So I take it using XAMPP means the database is not running on a "live site" ??
How can I host my database live? currently I start XAMPP then use:
localhost/phpmyadmin to log into my SQL database....
Do you mean I need to upload that SQL database to lets say my FileServer so it is live and therefore takes XAMPP out of the process and means I can access my APP (in debug mode) from anywhere?
So sorry I am confused about how google server, XAMPP and my SQL database work...
Thanks for your patience, please continue to help me...
Thank you so much
can anyone please kindly help?
thank you
xirokx said:
can anyone please kindly help?
thank you
Click to expand...
Click to collapse
Depends on what you plan to build
If it can work offline then you generally do not need to rent a server.
If you intent to make MMO online game, chat site, dating site, your own social networking site.. then you will need to rent a server.
Whether or not need a server for the above purposes. Your app is generally hosted on a Google Play server, and be visible to people with play-store apps (technically visible as your app is hard to search for at the beginning, this is another story)
If your app is more than 50mb.. Then you will need your own server. To host the package, containing any data in excess of 50mb. Google will host the first 50mb for you. Your users will have to go start your app to get the rest from your server.
You might want to have your own server for own custom licensing validation and IAP purchasing checks, only if you don't think the google's solution is sufficient.
You can also host on Amazon.
hotspot_volcano said:
Depends on what you plan to build
If it can work offline then you generally do not need to rent a server.
If you intent to make MMO online game, chat site, dating site, your own social networking site.. then you will need to rent a server.
Whether or not need a server for the above purposes. Your app is generally hosted on a Google Play server, and be visible to people with play-store apps (technically visible as your app is hard to search for at the beginning, this is another story)
If your app is more than 50mb.. Then you will need your own server. To host the package, containing any data in excess of 50mb. You might want to have your own server for own custom licensing validation and IAP purchasing checks, only if you don't think the google's solution is insufficient.
You can also host on Amazon.
Click to expand...
Click to collapse
Thanks for your reply
I was hoping for more specific answers in relation to my specific questions...
Well your later questions are more specifically hosting questions less about android related issues
Advice to you is to turn of wifi on your phone, when your are inside and see if you can access your XAMP server.
Can you ping your server IP address (not the local IP 192.168.0.X, assuming its your home server.
Does your ISP allow you to use your home Internet to host a server accessible on the internet? (as above)

Signin via Google+ or Facebook?

Hello,
I am developing an App that requires the user to create an account and to sign in using that account. To make it easier for the user (certainly not for me), I want the user to create his or her account using an existing Google+ or Facebook account.
So my idea was:
Sign the user into Google+ on the device
Aquire the email address and and an oauth2 access-token for the user the
send those two to my server application
validate the email using the oauth2 token by reading it from the google server
create an account on the server, storing the email and generate a "password"
send the password back to the android app to authorize future calls to my server using the email and generated password
I am not sure if this is the recommended procedure for my problem, but anyway, I am failing at the third step.
Could someone please tell me if I am on the right way or should I solve the problem in some other way?
(mods: why does it say "this is not a Q&A forum but has Q&A in the title?)
onlyolli said:
Hello,
I am developing an App that requires the user to create an account and to sign in using that account. To make it easier for the user (certainly not for me), I want the user to create his or her account using an existing Google+ or Facebook account.
So my idea was:
Sign the user into Google+ on the device
Aquire the email address and and an oauth2 access-token for the user the
send those two to my server application
validate the email using the oauth2 token by reading it from the google server
create an account on the server, storing the email and generate a "password"
send the password back to the android app to authorize future calls to my server using the email and generated password
I am not sure if this is the recommended procedure for my problem, but anyway, I am failing at the third step.
Could someone please tell me if I am on the right way or should I solve the problem in some other way?
(mods: why does it say "this is not a Q&A forum but has Q&A in the title?)
Click to expand...
Click to collapse
I assume you follow Google's guide on G+ signin? I think that is a good way to do it, but I'm not so sure about that "password" you generate on your server. Wouldn't you just use the Android device id or something like that to validate the account?
SimplicityApks said:
I assume you follow Google's guide on G+ signin? I think that is a good way to do it, but I'm not so sure about that "password" you generate on your server. Wouldn't you just use the Android device id or something like that to validate the account?
Click to expand...
Click to collapse
Thank you!
I prefered using some server secret over the android device id, cause that one is not known to other applications.
Right now i guess i have the problem that the google api is not really picking up the certificate hash and as such is not using the correct project on the api console - that would explain why i am getting "api not configured" errors and why no api access is monitored on the developer console. Maybe. -.-

Categories

Resources