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

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

Восстановить пароль Регистрация
 
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,831
Завершенные тесты: 1
15.04.2016, 14:44     покупки в приложении и id пользователя, скачавшего приложение #1
Всем привет.

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

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

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

Вход пользователя в приложение Android
Android Свайп в приложении
Android Приложении на андроид
Факт оплаты покупки в приложении - где хранить? Android
Посчитать заходы пользователя в приложение Android
Android Видео в приложении
Android Баг в приложении
Покупки, подписки в приложении Android
Android Проверка валидности покупки сторонним сервером
Android Webview, добавить возможность покупки пакетов
Чат в приложении Android
Покупки в приложения в обход гугла Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
15.04.2016, 15:10     покупки в приложении и id пользователя, скачавшего приложение #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 минуты
Паблито, а в приложении есть авторизация? Можно было бы привязаться к ней, а не к гугл аккаунту. Или не вариант?
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,831
Завершенные тесты: 1
15.04.2016, 16:24  [ТС]     покупки в приложении и id пользователя, скачавшего приложение #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
Yandex
Объявления
15.04.2016, 16:24     покупки в приложении и id пользователя, скачавшего приложение
Ответ Создать тему
Опции темы

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