Flutter in_app_purchaserestorePurchases всегда возвращает покупки из учетной записи Google Play, из которой изначально бAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Flutter in_app_purchaserestorePurchases всегда возвращает покупки из учетной записи Google Play, из которой изначально б

Сообщение Anonymous »

Тело
Привет!
Я разрабатываю приложение для сдачи экзамена на водительские права с использованием Flutter и реализовал покупки в приложении с помощью пакета in_app_purchase. Покупки работают корректно и могут быть успешно завершены. Приложение также использует Вход в Google для аутентификации пользователя.

Описание проблемы

После покупки разового (непотребляемого) продукта покупка всегда связана с аккаунтом Google Play, который использовался для первоначальной установки приложения.
Даже если я позже переключусь на другую учетную запись Google на устройстве и войду в приложение при использовании входа в Google приложение по-прежнему обрабатывает покупку так, как если бы она принадлежала учетной записи, из которой первоначально загрузилось приложение.

Ожидаемое поведение

Я ожидал, что функция восстановления вернет данные о покупке на основе активной в данный момент учетной записи Google Play на устройстве, а не учетной записи, в которой первоначально было установлено приложение.
Изначально приложение не включало вход в Google или любое серверное соединение. Моей целью было определить статус покупки исключительно на основе активной учетной записи Google Play.

Код: Выделить всё

restorePurchases
автоматически вызывался при запуске приложения, и я ожидал, что он соответствующим образом обновит состояние покупки.

Фактическое поведение

  • Код: Выделить всё

    restorePurchases
    всегда возвращает покупки из учетной записи Google Play, в которой изначально было установлено приложение
  • Смена учетной записи Google на устройстве не меняет восстановленные покупки
  • Если я удалю приложение и переустановлю его, используя другую тестовую учетную запись, вместо этого будут возвращены покупки из этой учетной записи
  • Такое поведение происходит, когда приложение находится на внутреннем тестировании
Из-за этого, когда пользователь входит в систему с другой учетной записью Google, приложение в конечном итоге сохраняет неверные данные о покупке в базе данных.
Я также попробовал интегрировать Вход в Google, надеясь, что это решит проблему, но на поведение это не повлияло. restartPurchases по-прежнему возвращает покупки из учетной записи, в которой изначально было установлено приложение.

Вопросы
  • Не должна ли функция восстановления работать для каждого аккаунта Google Play?
  • Ожидается ли такое поведение из-за того, что Google Play связывает покупки с установка учетной записи?
  • Как эту ситуацию можно правильно обработать во Flutter при использовании пакета in_app_purchase?
  • Использует ли пакет Flutter in_app_purchase внутреннюю Библиотеку выставления счетов Google Play или он использует другой API выставления счетов Google Play?
    />
  • Поможет ли переход непосредственно на Библиотеку платежей Google Play/API решить эту проблему?
Будем очень признательны за любые разъяснения относительно правильной архитектуры или рекомендаций по обработке покупок на основе учетной записи.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -the-googl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»