Безопасная покупка премиального IAP - PullRequest
1 голос
/ 13 марта 2020

У меня есть приложение, в котором я хочу использовать Google Pay только для 1 не расходуемого обновления, я использую приведенный ниже код, чтобы получить статус моей покупки в Google Play

override fun onPurchasesUpdated(
    billingResult: BillingResult?,
    purchases: MutableList<Purchase>?
) {
    if (billingResult?.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
        for (purchase in purchases) { 
            handlePurchase(purchase) 
            // set user preference bool value if status is purchased 
        }
    } 
}

и для параметра bool установлено значение true чтобы скрыть рекламу, от Google здесь

https://developer.android.com/google/play/billing/billing_library_overview

В разделе Verify a purchase Говорят

Примечание. Настоятельно рекомендуется проверьте информацию о покупке, используя защищенный внутренний сервер, которому вы доверяете. Когда сервер недоступен, вы можете выполнить менее безопасную проверку в вашем приложении.

мой вопрос

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

1 Ответ

0 голосов
/ 13 марта 2020

Это обычная практика или я должен использовать сервер для проверки с помощью обратного инжиниринга?

Это хорошая практика, но это не обычная практика.

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

Является ли ваше приложение чрезвычайно популярным среди тысяч DAU?

Разблокируете ли вы действительно полезные функции, если 1% пользователей используют модовую версию вашего приложения, реально будет оправдывать затраты на сервер? В большинстве случаев этого не происходит.

, и если да, разве это не произойдет и с сервером?

Да, может, сервер - это просто еще один уровень безопасности.

Я бы предложил скрыть ваш ключ публикации c с помощью NDK, который сложнее восстановить, и вы должны быть в полной безопасности.

Вы можете найти учебник здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...