首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否必须验证订阅的每个SKPaymentTransaction的收据?

我是否必须验证订阅的每个SKPaymentTransaction的收据?
EN

Stack Overflow用户
提问于 2020-11-03 08:40:04
回答 1查看 75关注 0票数 4

我正在我的iOS应用程序中实现自动续订订阅。我的事务处理看起来像这样的伪代码:

代码语言:javascript
复制
func paymentQueue(_queue: SKPaymentQueue, updatedTransactions transactions:[SKPaymentTransaction]) {
  for (t in transactions) {
    let data = Data(contentsOf: getReceiptUrl())

    //this is actually async, but for simplicity here it's just a straight return
    if verifyReceiptWithServer(data) == .success {
      print("Verified receipt successfully!")
    }
    queue.finishTransaction(t)
  }
}

如果在我的应用程序处于非活动状态时订阅续订超过一次,我可能会在这里获得每个产品的多个交易。有时,应用程序也会在重新安装时立即获得大量旧事务。我需要验证每一笔交易吗?还是每个productIdentifier只做一个更好?或者甚至是每一次调用paymentQueue:updatedTransactions:一次?如果磁盘上的收据数据一直都是相同的,那么我每次都会向服务器发送相同的二进制数据,有时可能会很多。

欢迎在答案中使用文档链接。

EN

回答 1

Stack Overflow用户

发布于 2020-11-16 19:06:52

对于订阅,您只需为所有事务进行一次调用。重要的是,您正在验证收据上的授权。所以,只要你的服务器正在查看整个收据,你就应该很好。

对于其他IAP类型,需要对每个更新的事务进行验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64655232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档