Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
#1

Покупки в приложении и id пользователя, скачавшего приложение - Программирование Android

15.04.2016, 14:44. Просмотров 233. Ответов 2
Метки нет (Все метки)

Всем привет.

Сразу вопрос - как вытянуть id пользователя, который скачал приложение из маркета?

Чуть подробнее.
Пользователь скачивает приложение, запускает его и совершает покупку. Во время покупки ему открывается стандартный диалог, он выбирает аккаунт с которого платит.
Все замечательно, если у него только один google аккаунт на устройстве. А если их несколько?
Мне нужно отправлять на backend идентификатор пользователя, что бы связать покупку с каким-то аккаунтом.

Сейчас получается так - я могу получить список аккаунтов на устройстве, так же могу попросить пользователя "залогиниться" в приложении. Но он может выбрать один аккаунт, а платить будет с другого.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2016, 14:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Покупки в приложении и id пользователя, скачавшего приложение (Программирование Android):

Покупки, подписки в приложении - Программирование Android
Использую библиотеку https://github.com/anjlab/android-inapp-billing-v3 Может кто использовал и знает ответы на мои вопросы?) 1)...

Факт оплаты покупки в приложении - где хранить? - Программирование Android
Посоветуйте пожалуйста: где лучше хранить факт покупки в приложении. Т.е. пользователь оплатил некий доступ. Я устанавливаю флаг покупки и...

Если приложение на amazon.com, будут ли идти покупки через Google Play? - Программирование Android
Здравствуйте уважаемые. В целом ответ на вопрос я наверно даже знаю и сам. Но все же, может тут есть люди с опытом и подскажут умную...

Как сделать регистрацию пользователя в приложении? - Программирование Android
Есть приложение, есть сервер на котором данные для приложения, как можно реализовать добровольную регистрацию пользователей, т.е. юзер...

Вход пользователя в приложение - Программирование Android
При входе в приложения у меня появляется EditText и просьба написать имя. Как мне запомнить имя которое он ввёл уже в приложении чтобы при...

Посчитать заходы пользователя в приложение - Программирование Android
Всем здравствуйте :) Кто знает, подскажите пожалуйста такую штуку: пишу игру на телефон. Хочу, чтобы на сотый (двухсотый, трехсотый и т.д.)...

2
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
15.04.2016, 15:10 #2
Паблито, хм, интересный вопрос. Прошерстил быстренько документацию, не нашёл никакой информации о том, как можно получить идентификатор аккаунта, с которого был платеж.

InApp billing just charges the user and tells your app whether it was successful or not. It is up to you to figure out how to give the user what they purchased.
Добавлено через 4 минуты
Паблито, а в приложении есть авторизация? Можно было бы привязаться к ней, а не к гугл аккаунту. Или не вариант?
1
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
15.04.2016, 16:24  [ТС] #3
я честно говорю что с авторизацией до этого не работал и поэтому не совсем представляю даже направление куда идти

сейчас в коде создается GoogleApiClient вот так
Java
1
2
3
4
5
6
7
8
9
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(DEFAULT_SIGN_IN)
                .requestEmail().build();
        client = new GoogleApiClient.Builder(context)
                .addConnectionCallbacks(this)
                .addApi(Plus.API)
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .addScope(new Scope(Scopes.PROFILE))
                .addScope(new Scope(Scopes.EMAIL))
                .build();
дальше в коде в нужном месте на нем вызывается connect() и когда коннект есть вызываю на экран диалог с авторизацией
Java
1
2
            Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(client);
            ((MainActivity) context).startActivityForResult(signInIntent, Const.ACTIVITY_LOGIN_REQUEST);
пользователь выбирает аккаунт и я могу из него дернуть все что нужно - id, email, фотку из профиля и т.д.
но проблема в том, что он может выбрать к примеру аккаунт №3, а карточка у него привязана к аккаунту №1

дальше в коде, когда надо сделать покупку - через IABHelper запускается Purchase Flow, пользователь платит и все

Теперь мне надо отправить на сервер инфу о том, кто же купил подписку (subscription), а я даже не знаю с какого аккаунта он платил, только с которого авторизовался.

Для чего мне надо отправлять на сервер? Сервер будет подключаться к аккаунту разработчика и проверять валидность подписки - не истекла ли. Но я не могу понять что они там могут увидеть...
Вот пользователь залогинился как Вася, а карточка у него на google аккаунте жены, он с нее платит. Я могу вытянуть id Васи, но никак не id его жены.
Потом он допустим сносит программу, а через день снова ставит на другом устройстве и заходит как Вася в программу. Я (точнее наш backend сервер) должен как-то проверить - куплена у него подписка или нет. А как это сделать если платила жена.
Надеюсь я изложил не запутанно.

Мне кажется что я не вижу чего-то очевидного )

Добавлено через 1 час 1 минуту
вобщем все как всегда - бился неделю, но стоило создать тему и все решилось

вдруг кому-то поможет, примерный сценарий теперь выглядит так:
- пользователь скачивает приложение и логинится в нем под кем хочет
- вытягиваем его id и запоминаем
- пользователь совершает покупку и в onActivityresult прилетает ответ что покупка или подписка оформлена
из этого объекта вытягиваем токен покупки или подписки и шлем его на наш сервер
- сервер сохраняет id пользователя и токен покупки

Теперь сервер может запрашивать у гугла информацию по покупке указывая токен этой покупки.
PROFIT!
источники инфы
http://developer.android.com/intl/ru...l#play-dev-api
https://developers.google.com/androi...scriptions/get
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2016, 16:24
Привет! Вот еще темы с ответами:

Создать приложение по расчету стоимости покупки - Turbo Pascal
Здравствуйте!Помогите с задачкой. Создать приложение по расчету стоимости покупки,состоящей из разного количества товаров трех...

Приложение для определения общей стоимости покупки - C#
Разработайте приложение для определения общей стоимости покупки (в рублях и долларах). Название продуктов выбираются из списка, цены,...

Приложение для вычисления стоимости покупки с учетом скидки - Delphi
Разработать приложение для вычисления стоимости покупки с учетом скидки. Скидка 1% предоставляется, если сумма покупки больше 300 руб., 2%...

Написать Windows-приложение для вычисления стоимости покупки с учетом 8% - C++
Написать Windows-приложение для вычисления стоимости покупки с учетом 8%. Скидка предоставляется, если сумма покупки превышает 1000 рублей....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru