Встроенная покупка, частичное использование кредита

У меня есть вопрос IAP. По сути, моему приложению необходимо рассчитать, сколько раз пользователь использует функцию, и я хотел бы взимать соответствующую плату. Я, вероятно, собираюсь брать 1 цент или около того за использование функции, поэтому, если IAP составляет минимум 1 доллар, это кредит на 100 использований.

Теперь мой вопрос заключается в том, какой тип IAP я должен выбрать: расходный, не расходный, по подписке.

Вторая часть вопроса: если пользователь платит 1 доллар за IAP, он может использовать эту функцию 100 раз. Как я должен отслеживать время использования и где временно хранить значение использования? Я знаю, что могу писать / читать в / из файла в песочнице, это будет безопасно? Пользователь может использовать 10 раз и выйти и вернуться, чтобы продолжить. Мне нужно дать пользователю кредит еще на 90 использований.

Нужно ли мне идти по пути, когда вы покупаете IAP один раз и наслаждаетесь все время. Таким образом, я должен повысить цену IAP и привлечь гораздо меньше покупок.

Любая идея? Спасибо!

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

 initialCredit = 500;

 defaults = [NSUserDefaults standardUserDefaults];
 if (![defaults objectForKey:theAppCrediteKey]) {
      [defaults setObject:[NSNumber numberWithFloat:initialCredit]               forKey:theAppCrediteKey];
 }
 readingCredits = [defaults objectForKey:theAppCrediteKey];
 if ([readingCredits floatValue] < 0) {
 readingCredits = [NSNumber numberWithFloat:0];
 }

1 ответ

Решение

Это определенно покупка расходных материалов - если они израсходуют свои 100 кредитов, они могут купить еще 100 кредитов за дополнительные 1 доллар.

Почему бы не внедрить счетчик в свои пользовательские настройки - при покупке IAP за 1 доллар вы добавляете к счетчику 100 кредитов и уменьшаете его при каждом вызове функции?

[Edit] Например, вот быстрое и хакерское решение, предполагающее, что все происходит в одном модуле, и не проверяет квитанции магазина или что-либо еще.

Убедитесь, что ключ доступен в стандартных пользовательских настройках:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults objectForKey:@"Credits"])
    [defaults setObject:[NSNumber numberWithInt:0] forKey:@"Credits"];

NSNumber *credits = [defaults objectForKey:@"Credits"];

Когда происходит действие декремента:

credits = [NSNumber numberWithInt:[credits intValue]-1];

или по IAP:

credits = [NSNumber numberWithInt:[credits intValue]+100];

При необходимости сохраните значение по умолчанию для пользователя:

[defaults setObject:credits forKey:@"Credits"];
[defaults synchronize];
Другие вопросы по тегам