ios - 如果我们可以只检查收据,那么检查交易队列有什么意义?
问题描述
对于 Apple in app purchase,我们似乎应该观察交易队列:
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
...
}
但我们还需要验证收据(在 解析内容[[NSBundle mainBundle] appStoreReceiptURL]];
)。但是……我们可以直接走捷径直接看收据吗?有什么不同?
解决方案
要验证收据,您应该创建自定义服务器并将收据发送到服务器。收据还包含所有交易,您应该在其中找到最后一笔交易,向用户显示一些有关购买的消息并不是很容易的方法。我将交易用于统计和快速信息,并使用收据来验证购买。
您也可以使用收据进行双重检查,如果收据不包含适当的交易,您可以限制对内容的访问。
推荐阅读
- excel - 结果的两个 sigma std 上的 Excel 公式
- mysql - 在 SQL 中创建外键被认为不兼容,不知道为什么
- c# - 错误 MT2002:无法解析“System.Collections.Generic.Stack`1”
- arduino - Arduino 程序挂起不到 4-6 小时
- json - 以角度 7 显示 json 数据
- r - 尝试 diff 两次导致“强制引入的 NA”错误
- firebase - react-native-firebase 在通知到达时播放自定义声音
- jmeter - Jmeter:在主机中发现非法字符:'/'
- r-markdown - !未定义的控制序列
- c# - C# - Exception thrown in property setter cannot be caught when called via reflection (SetValue())