Встроенная покупка, частичное использование кредита
У меня есть вопрос 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];