微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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没找到任何东西

解决方法

是的,你必须完成交易.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐