【发布时间】:2016-04-24 15:28:30
【问题描述】:
我的应用是多用户应用,类似于微信或QQ。当User1开始付款时:
SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];
payment.quantity = 1;
payment.applicationUsername = [self hashedValueForAccountName:accountName];
[[SKPaymentQueue defaultQueue]addPayment:payment];
在这里,我找不到一些属性来提供用户定义的数据,例如用户帐号,applicationUsername 仅用于检测Apple服务器的异常活动,并且不能在事务完成时插入receipt .
User1 将在交易完成时收到通知。
-(void)paymentQueue:(SKPaymentQueue )queue updatedTransactions:(NSArray )transactions{
//...
}
但是如果由于某些网络原因或任何其他原因导致Apple无法通知交易,并且我**关闭我的应用程序**然后重新启动应用程序并使用User2登录。 Apple 将通知我的应用最后一次交易。
由于交易(收据)不包含“用户标识符”,我无法判断交易的所有权。
我已经阅读了Apple提供的几乎所有的应用内购买文档,例如https://developer.apple.com/in-app-purchase/和https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html,但我找不到任何答案。
我该怎么办?谢谢。
【问题讨论】:
-
通过下面的答案,可能会对你有所帮助。 stackoverflow.com/questions/25480869/…
-
非常感谢,它有帮助。
-
如果您可以投票或接受我的回答,我会很高兴。 :)
-
嗨 Vikas,当我尝试在服务器上存储但当时网络(互联网)消失并且服务器存储失败时。一段时间后网络(互联网)来了。任何其他用户尝试恢复。但是我们不能区分用户,因为我们在服务器上没有“transaction.transactionIdentifier”。那么我们做什么呢?可以分享一下吗?
标签: ios in-app-purchase