gpt4 book ai didi

iPhone - 应用内购买消耗品正确做法

转载 作者:行者123 更新时间:2023-12-03 18:15:53 25 4
gpt4 key购买 nike

我正在创建这个新应用程序,它将使用消耗性应用程序内购买。

我的问题是:它是如何工作的?我的意思是,假设用户购买了消费品。因此,在完成销售后,我在应用程序的数据库上设置了一个标志,授权使用该对象。我在某处读到,我必须为用户提供一个按钮来恢复旧交易,以防用户由于某种原因丢失了设备并必须恢复所有内容。

假设用户已经使用了该购买,之后他恢复了旧的应用内购买。然后会发生什么?用户是否会再次拥有相同的资源,从而无需付费即可第二次使用?它是如何工作的以及我应该如何处理它?<​​/p>

谢谢

最佳答案

我想分享一个我发现的这个问题的有点非正统的解决方案,它具有不需要服务器的巨大优势。如果删除并重新安装应用程序,此方法允许用户恢复其消耗品,但不允许他们将这些消耗品移动到新设备(除非复制所有应用程序数据)。

当删除并重新安装应用程序时,存储在钥匙串(keychain)中的数据仍然存在。钥匙串(keychain)用于存储用户名和密码,但您也可以在其中存储有关消耗品购买的信息。我使用了 KeychainItemWrapper 类,可在此处获取:https://developer.apple.com/library/content/samplecode/GenericKeychain/Introduction/Intro.html

下面是一些示例代码,我在其中存储和检索用户剩余的付费提示数量:

//Storing the consumable hint item count
int hintsLeft = 100;
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Hints" accessGroup:nil];
NSString *hintsString = [NSString stringWithFormat:@"%i",hintsLeft];
[wrapper setObject:hintsString forKey:(id)kSecValueData];
[wrapper release];

//Retrieving it
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Hints" accessGroup:nil];
NSString *numHints = [wrapper objectForKey:(id)kSecValueData];
[wrapper release];
int retrievedHints = [numHints intValue];

注释:

  • 键 (id)kSecValueData 不能是任意字符串,有一组常量列表可以用作键。

  • 您需要添加安全框架

关于iPhone - 应用内购买消耗品正确做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6449312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com