Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Pablito
2646 / 2128 / 726
Регистрация: 12.05.2014
Сообщений: 7,439
Завершенные тесты: 1
#1

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

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

Всем привет.

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

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

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

Покупки, подписки в приложении
Использую библиотеку https://github.com/anjlab/android-inapp-billing-v3 ...

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

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

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

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

2
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 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
2646 / 2128 / 726
Регистрация: 12.05.2014
Сообщений: 7,439
Завершенные тесты: 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
Привет! Вот еще темы с решениями:

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

Встроенные покупки в мобильном приложении 1С
Пытаюсь тестировать встроенные покупки в 1С мобильное приложение. Загрузил...

Создать приложение по расчету стоимости покупки
Здравствуйте!Помогите с задачкой. Создать приложение по расчету стоимости...

Приложение для определения общей стоимости покупки
Разработайте приложение для определения общей стоимости покупки (в рублях и...


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

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

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