gpt4 book ai didi

iPhone应用内购买: receipt verification

转载 作者:行者123 更新时间:2023-12-03 19:31:15 27 4
gpt4 key购买 nike

我对交易收据验证有一些疑问:

  • 为什么需要外部服务器?为什么我不能直接联系 http://buy.itunes.apple.com直接从 iPhone 上?
  • 如果此外部服务器出现故障或收据无效怎么办?如何将其传达到支付队列? finishTransaction 仍会显示“付款成功”警报 View ,因为交易实际上已成功,我想这会让用户感到困惑。

如果我误解了应用内购买流程或者我的问题不够清楚,我们深表歉意。谢谢。

编辑:如果我发现收据无效,我想我不应该调用finishTransaction,但这有问题吗?文档说应用程序应该始终调用该函数。另外,那时钱已经转移了......困惑

最佳答案

收据验证可确保交易完成且成功。您不想在 iPhone 上执行此操作,因为您无法真正信任用户的手机。

  1. 用户发起应用内购买
  2. 完成后,应用会要求您的服务器进行验证
  3. 您向 Apple 验证收据:如果收据有效,您就可以执行与购买相关的任何操作(解锁/交付内容、注册订阅...)
  4. 应用从队列中删除交易 (finishTransaction)

如果服务器关闭,您不应完成事务,而应向用户显示“不可用消息”。

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

稍后会再次调用。

但是如果您发现收据无效,您应该完成相关交易。如果没有,您可能会有额外的事务永远存在于事务队列中。这意味着每次您的应用运行时, paymentQueue:updatedTransaction: 每笔交易都会被调用一次...

在我的应用中,收据验证是通过网络服务完成的,如果收据无效,则返回错误代码。这就是需要外部服务器的原因。如果用户以某种方式设法跳过收据验证(通过伪造网络服务“成功”响应),他将无法解锁内容/访问功能,因为服务器没有购买痕迹。

关于iPhone应用内购买: receipt verification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4863497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com