Промо-коды для покупок в приложении нарушают проверку удаленного сервера?

Выпуск промо-кодов для покупок в приложениях кажется таким, что это предотвратит приложение (когда-либо снова) выполнение проверки на покупку удаленного сервера!

Когда промо-код используется для покупки в приложении (трансляция PURCHASES_UPDATED ), он полностью обходит поток покупок, поэтому приложение не имеет возможности поставлять «DeveloperPayload» , используемый для дистанционной проверки.

Позже, когда приложение вызывает getPurchases () для получения / проверки продуктов владельца, данные о покупке для промо-покупок, конечно, не будут содержать "orderId" , но ни "orderId" , также полезный для удаленной проверки с помощью API разработчика Google Play ,

Как приложение должно проверять покупки в приложении, сделанные с помощью промо-кодов?

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

Отчеты о проблемах:

  • Https://code.google.com/p/android/issues/detail?id=200722 (закрыто WrongForum)
  • https://github.com/googlesamples/android-play-billing/issues/7

Похожие сообщения:

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

Solutions Collecting From Web of "Промо-коды для покупок в приложении нарушают проверку удаленного сервера?"

Это действительно проблема безопасности со стороны Google, поэтому я собираюсь предложить обходной путь.

Вместе с промо-кодом предоставляют пользователям идентификатор сервера, сгенерированный вашим сервером, при получении промо-акции проверяют идентификатор сервера и принимают покупку только один раз.

При использовании с рынка отправьте идентификатор с помощью реферера. При использовании приложения у вас есть своя логика для предоставления идентификатора сервера.

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