ios – 服务器端接收验证失败时是否应该调用finishTransaction?

前端之家收集整理的这篇文章主要介绍了ios – 服务器端接收验证失败时是否应该调用finishTransaction?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用服务器端验证.

当客户的

– (void)paymentQueue:(SKPaymentQueue *)队列
updatedTransactions:(NSArray *)事务

调用,transactionState是SKPaymentTransactionStatePurchased,
客户端将收据发送到我们的服务器,
我们的服务器验证它.

当服务器端验证成功时,
客户端显然调用finishTransaction,没问题.

当服务器端验证失败时,
因为苹果临时返回非json,或客户端发送无效收据,或某事,
服务器将该信息返回给客户端.

接下来,我们的客户应该怎么做?
我们应该调用finishTransaction吗?

这导致无效的交易永远活在队列中?
就像在这个问题上说的那样:iPhone in-app purchase: receipt verification

But if you find out that a receipt is invalid,you should finish the associated transaction. If not,you may have extra-transactions living forever in the transaction queue. That means that each time your app runs,paymentQueue:updatedTransaction: will be called once per transaction…

但是,如果我们完成交易,我们的宝贵的用户将收到此收据(我们未能验证),是吗?

或者验证失败的交易在一段时间内到期?

这是否记录在苹果文档中的某个地方?
我在http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html没找到任何东西

解决方法

是的,你必须完成交易.

如果你给用户那么他们想要的话,这取决于你.在某些情况下,即使收据无效或伪造(使用越狱),最好给用户所需的.特别是当它花费你什么也没有.

猜你在找的iOS相关文章