Подтвердить что ты не робот

Покупки в приложении, сделанные с помощью промо-кодов, возвращают пустую строку полезной нагрузки разработчика

У меня есть приложение, опубликованное в альфа-канале, с элементом управления in-app (un), который стоит $1.

Когда я покупаю обычно, т.е. использую кредитную/дебетовую карту, Google возвращает правильную строку полезной нагрузки разработчика, но если я выберу "выкупить" промо-код и ввести указанный код, Google вернет пустую строку полезной нагрузки разработчика и, таким образом, аутентификация завершается с ошибкой в ​​'onIabPurchaseFinished()'.

Я должен упомянуть, что это происходит только в том случае, если я решил выкупить код из потока покупки приложения, и все работает безупречно, если я сначала открою Play Store, выкупите код, а затем вернитесь и откройте приложение.

Это ошибка в части Google?

РЕДАКТИРОВАТЬ: вещь Play Store ожидается, так как она не может знать вашу полезную нагрузку, и покупка выполняется без необходимости ее проверки.

4b9b3361

Ответ 1

Эта проблема была открыта в образцах Google-азыкинга Google repo. Похоже, что он долго игнорировался и в конце концов был закрыт этот комментарий. Короче говоря, у них есть следующие предложения.


Мы рассмотрели наши рекомендации и внутренние API-интерфейсы, а поскольку DeveloperPayload не поддерживается во всех функциях In-App Billing API (включая промокоды), мы удаляем рекомендацию использовать его в качестве проверки безопасности.

Как вы можете видеть в нашей документации, на странице "Реализация биллинга в приложении" (https://developer.android.com/google/play/billing/billing_integrate.html) мы добавили рекомендацию

Предупреждение. Не используйте поле разработчика для загрузки в целях безопасности. Это поле не всегда доступно при выполнении задач, связанных с In-app Billing. Дополнительные сведения о лучших рекомендациях по безопасности см. В руководстве по безопасности и дизайну приложений.

Наша рекомендация - проверить на своем собственном бэкэнд, используя API разработчика Play.