Являются ли возмещения для Android в приложениях, доступных для покупки? - В API биллинга приложений V3
Я не хочу, чтобы у меня была возможность вернуть пользователя для покупки приложения в расходном материале, но только в странном случае, когда пользователь запрашивает возмещение, либо через Google, либо через разработчика покупки приложения расходного материала.
Там нет никакого способа обработки возмещений через In App Billing api V3. Вся документация указывает на V2 api, используя широковещательные приемники. Это нисколько не помогает мне.
Итак, как возмещение, обработанное в In App Billing v3 api? Я предполагаю, что для него нет расходных материалов, возврат будет обработан, а затем google обработает обработку через их бэкэнд, а затем, когда будет проведена процедура getPurchaseState(), она вернет значение 2 (возвращается). Если это так, это отлично работает для продукта NON CONSUMABLE.
Когда вызывается запрос getPurchaseState() на потребительскую покупку, он возвращает null. Это предполагает, что покупка была ранее успешной и что элемент был израсходован и подготовлен. Я полагаю, что я мог хранить предметы покупки локально в приложении, но тогда до сих пор нет способа получить уведомление о возврате этого продукта. Я могу проверить состояние покупки, но опять же, он вернет null, если он уже был использован и уже подготовлен.
Небольшое обходное решение, о котором я сейчас думаю, заключается в том, чтобы не покупать покупку при предоставлении ресурсов. Так что он остается "неповрежденным" в соответствии с google и остается в их базе данных. Теперь, если запрашивается возмещение, я принимаю вызов getPurchaseState(), так как потребляемый будет возвращать возвращенный, поэтому логика приложения может затем вычесть/вычесть зарезервированные расходные материалы из инвентаря пользователя. Если пользователь захочет повторно выкупить этот расходный материал, то перед тем, как будет сделан запрос IAB api для покупки, получите покупкуState() и/или hasPurchase(), и если там уже есть покупка, используйте этот элемент без предоставления ресурсов, это позволит пользователю выкупить это расходное. Только проблема с этим обходным путем заключается в том, что если пользователь хочет повторно приобрести тот же самый потребляемый продукт, как только выберете опцию выкупа, элемент должен потребляться независимо от того, успешно ли они выкупают продукт или нет. Поэтому, если пользователь не завершил покупку, продукт уже потребляется, и я вернусь туда, где я сейчас не могу проверить состояние возврата на расходные материалы.
Я не могу придумать какой-либо другой способ сделать возмещение за потребительский продукт в приложении, и вот что я прошу здесь. Является ли так, как я думал, достаточно, или есть правильный способ обработки возмещений с использованием IAP v3 на расходных материалах? Я думал, у меня есть 3 варианта:
- Не предлагайте возмещения за расходные материалы, за исключением/исключения, но проблема заключается в том, что пользователь запрашивает возврат через Google, а не через разработчика, что приводит к варианту 3 ниже)
- Найдите обходное решение (либо правильно через api, либо с моим предлагаемым обходным решением)
- Предлагайте возврат, но не имеете прикладной логики для вычитания/вычитания расходных материалов. В этом случае пользователи могут воспользоваться бесплатными покупками.
Ответы
Ответ 1
Я знаю, что это очень поздний ответ на эту проблему, но мне потребовалось некоторое время, чтобы отследить информацию по этой проблеме, поэтому, надеюсь, это может помочь кому-то другому. Есть несколько способов сделать это... В консоли разработчика Google Play вы можете щелкнуть левой кнопкой мыши, указав "Управление заказами", в котором будет отображаться список всех последних заказов, хотя ваше приложение. Если вам нужно вернуть его, вы можете щелкнуть по нему или выбрать несколько вариантов и вернуть их в этом представлении. Просто голова... вам, скорее всего, понадобятся разрешения от администратора вашей учетной записи, чтобы увидеть это мнение и вернуть пользователей.
Другой вариант заключается в том, что API- документа здесь. Вам нужно будет настроить свою учетную запись API, хотя консоль Android, о которой я скажу, является миссионерской болью и непонятной. Но как только эта настройка и ваши "Серверные приложения" настроены, вам необходимо убедиться, что у нее есть соответствующие разрешения. то вы должны быть в состоянии использовать библиотеку, например, как это делать тяжелую работу за вас, потому что от того, что я прочитал процесс аутентификации JWT, хотя Google API не очень прост, и их документы беспорядка. Надеюсь, это поможет кому-то и прокомментировать, если у вас есть вопросы... Я сделаю все возможное, чтобы ответить.
Этот же API также можно использовать для поиска элементов, которые покупаются пользователями, а затем возвращаются, поэтому вы можете удалить эти элементы из этих пользовательских приложений. Кроме того, вы также можете проверить правильность покупки на стороне сервера, что очень рекомендуется, поскольку корневые телефоны могут вводить поддельные запросы на покупку, чтобы ваше приложение считало, что оно слышит из магазина игры Google, но на самом деле это не так. Затем вы отправляете обратно на свой сервер токен покупки и SKU купленного предмета, а затем на своем сервере вы запускаете это. Это вернет вам ошибку 400, если она недействительна, и 200 с некоторыми данными JSON, если это успешная покупка.