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

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

概述我使用服务器端验证. 当客户的 – (void)paymentQueue:(SKPaymentQueue *)队列  updatedTransactions:(NSArray *)事务 被调用,transactionState是SKPaymentTransactionStatePurchased, 客户端将收据发送到我们的服务器, 我们的服务器验证它. 当服务器端验证成功时, 客户端显然调用fin 我使用服务器端验证.

当客户的

– (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…

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

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

这是否记录在苹果文档中的某个地方?
我在@L_403_1@没找到任何东西

解决方法 是的,你必须完成交易.

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

总结

以上是内存溢出为你收集整理的ios – 服务器端接收验证失败时是否应该调用finishTransaction?全部内容,希望文章能够帮你解决ios – 服务器端接收验证失败时是否应该调用finishTransaction?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1096692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存