我使用服务器端收据验证.
客户的时候
- (void)paymentQueue:(SKPaymentQueue *)queue
updatedTransactions:(NSArray *)transactions
被调用,并且transactionState是SKPaymentTransactionStatePurchased,客户端将收据发送到我们的服务器,我们的服务器验证它.
当服务器端收据验证成功时,客户端明显调用finishTransaction,没问题.
当服务器端收据验证失败时,由于apple临时返回非json,或者客户端发送了无效收据,或者其他什么,服务器将该信息返回给客户端.
接下来,我们的客户应该怎么做?我们打电话finishTransaction吗?
这导致无效的交易永远存在于队列中?喜欢在这个问题中说:iPhone应用程序内购买:收据验证
但如果您发现收据无效,则应完成关联交易.如果没有,您可能会在事务队列中永久存在额外的事务.这意味着每次你的应用运行时,每个事务都会调用一次paymentQueue:updatedTransaction:
但是,如果我们这样做finishTransaction,我们的宝贵用户将收到此收据(我们未能验证),对吧?
或者验证失败的交易在某个时期到期了吗?
这是在Apple的文档中的某处记录的吗?我在http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html中找不到任何内容.
小智 2
是的,你必须完成交易。
如果你给用户他们想要的东西,那就取决于你了。在某些情况下,最好给用户他们想要的东西,即使收据无效或伪造(使用越狱)。尤其是当你不花任何钱的时候。
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |