Тестирование биллинга Android в Google Play

#android #testing #playback #billing #billingclient

Вопрос:

Я хочу протестировать свой серверный сервер, чтобы убедиться, что я обрабатываю ответ от Google.Apis.AndroidPublisher.v3.purchases.products.get правильно. При запуске потока выставления счетов с использованием тестовой учетной записи я получаю код ответа BillingClient.BillingResponseCode.ITEM_UNAVAILABLE в PurchasesUpdatedListener.

Вот шаги для воспроизведения:

  1. Я использую Galaxy tab и Android Studio и запускаю приложение в отладчике
  2. используйте BillingClient.Запустите Billingflow, чтобы запустить диалоговое окно покупки
  3. появляется диалоговое окно покупки Android с сообщением об ОШИБКЕ: запрошенный вами товар недоступен для покупки.
  4. когда пользователь нажимает OK в диалоговом окне, PurchasesUpdatedListener выдает код ответа: billingResult.getResponseCode() = BillingClient.BillingResponseCode.ITEM_UNAVAILABLE

Вот что я проверил:

  1. приобретаемый товар активен в консоли Google Play
  2. этот элемент правильно возвращается при выставлении счета клиенту.Вызывается querySkuDetailsAsync
  3. учетная запись на планшете, которую я использую для отладки, является тестером лицензий на консоли
  4. Я пробовал как RESPONS_NORMALLY, так и LICENSED на вкладке license tester в консоли
  5. код версии идентичен тому, что загружается на закрытом тестовом треке
  6. учетная запись на планшете имеет действительную кредитную карту

Если я попробую выполнить описанную выше процедуру с помощью элемента приложения android.test.purchased, тогда все будет работать. Когда пользователь нажимает кнопку покупки, используя диалоговое окно поддельной кредитной карты, я получаю правильный ответ (billingResult.getResponseCode() = BillingClient.BillingResponseCode.OK).

Однако в этом случае я не могу использовать токен, предоставленный PurchasesUpdatedListener, потому что он поддельный и Google.Apis.AndroidPublisher.v3.purchases.products.get выдает ошибку 400. Для успешной покупки мне нужна реальная покупка, чтобы я мог отправить это на свой сервер, чтобы он мог отправлять Google.Apis.AndroidPublisher.v3 реальный токен для получения реального ответа.

По этой ссылке: https://developer.android.com/google/play/billing/test?authuser=1 то, что я пытаюсь сделать, возможно. Согласно ссылке, приложение не обязательно должно проходить альфа- или бета-тестирование и может быть отладочной сборкой с боковой загрузкой.

Кто-нибудь знает, почему я получаю BillingClient.BillingResponseCode.ITEM_ НЕДОСТУПЕН во время тестирования?