ios - 应用内购买,部分使用积分

标签 ios in-app-purchase credits

我有 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];
 }

最佳答案

这绝对是消耗品购买 - 如果他们用完 100 个积分,他们可以再花费 1 美元购买另外 100 个积分。

为什么不在您的用户首选项中实现一个计数器 - 在购买 1 美元的 IAP 时,您会向计数器添加 100 个积分,并在每次调用该函数时减少它?

[编辑] 例如这是一个快速而简单的解决方案,假设所有事情都发生在同一个模块内,并且不检查商店收据或其他任何内容。

确保该 key 在标准用户默认设置中可用:

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

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

当递减 Action 发生时:

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

或在 IAP 上:

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

在适当的时候将值保存为用户默认值:

[defaults setObject:credits forKey:@"Credits"];
[defaults synchronize];

关于ios - 应用内购买,部分使用积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020033/

相关文章:

ios - SDWebImage 正在部分加载,即使在终止应用程序后也不会加载回来

具有自动续订订阅功能的 iOS IAP,同一系列中的多个产品具有相同的持续时间

android - 在应用程序订阅中执行 android 的最低操作系统是什么?

ios - 苹果由于将用户重定向到应用之外而拒绝了iOS APP

wpf - WPF中的滚动学分屏幕...想法?

iphone - iOS - 强制全屏视频

iphone - 旋转后在一个方向上缩放 UIView 时如何防止倾斜?

iOS 自动续订订阅 - 有关续订过程的问题

magento - 如何以编程方式更新客户商店信用

ios - 警报键盘可以用于 iOS 上的任何文本字段吗?