Купить все покупки в приложении, вызывающие ненужные покупки, если приложение переустановлено

Мы работаем над игрой, в которой есть 4 встроенных покупки. Добавить контент A, Добавить контент B, Добавить контент C и Купить все.

Дополнительный контент просто разблокируется из приложения, ничего не загружается.

Итак, вот шаги, ведущие к моей проблеме.

Пользователь покупает товар «Купить все». Код знает, что это было куплено, и открывает весь дополнительный контент A, B, C. Игра сохраняет, что все куплено, поэтому при повторном заходе в магазин все кнопки недоступны.

Затем пользователь переустанавливает приложение (новый телефон, тот же телефон и т. д.).
Поскольку все сохраненные данные о покупках в приложении теряются, при посещении магазина все товары снова становятся доступны. Сейчас если:

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

Однако, и вот в чем проблема, если они:

b) Выберите, чтобы купить дополнительный контент A. Теперь, даже несмотря на то, что в прошлом был выбран вариант «Купить все», нет локальной записи о приобретенном или разблокированном контенте «Купить все», а также, поскольку пользователь фактически никогда не покупал элемент «Дополнительный контент». A, App Store взимает плату за это (без повторной загрузки). Контент разблокирован, но если пользователь снова выполнит «Купить все», он получит бесплатную повторную загрузку и весь контент, но с него будет дважды взиматься плата за «Добавить контент А».

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

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

1) Ничего не делать, пусть пользователь потеряет лишние 0,99 доллара.

2) Поместите кнопку «Восстановить покупки», которая вызовет восстановление, снова запросит пароль пользователя и при необходимости обновит весь разблокированный контент. Это решит проблему, но пользователь по-прежнему может не выбрать ее, И этой кнопки никогда не было в оригинальном дизайне нашей игры. Для меня это не критично, но клиенту может не понравиться.

3) Автоматическая проверка покупки восстановления. Я знаю, что вы не должны делать это при каждом входе в систему, но это может быть вызвано автоматически, когда пользователь впервые заходит в магазин или когда пользователь впервые пытается что-то купить.

Есть ли какие-либо из этих действительных решений или есть что-то еще, что я могу сделать, чтобы предотвратить двойную покупку контента? Я немного больше беспокоюсь о стандартах Apple, чем о пользователях, но я должен убедиться, что все правильно понял с первого раза.

Спасибо -Мо


person MoProductions    schedule 04.04.2012    source источник


Ответы (1)


Ваша покупка Buy All стоит меньше, чем сумма A B C?

Если нет, вы можете просто купить NSSet всех A, B и C, вместо того, чтобы производить еще один продукт.

Вы также можете попытаться восстановить транзакции, когда пользователь нажимает на продукт A и проверяет, купил ли он его сначала, а затем позволяет ему купить его.

person Nikita Pestrov    schedule 05.04.2012