首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >购买InApp会产生错误的SKPaymentTransaction状态

购买InApp会产生错误的SKPaymentTransaction状态
EN

Stack Overflow用户
提问于 2020-11-09 14:32:21
回答 2查看 91关注 0票数 2
代码语言:javascript
复制
let payment = SKPayment(product: product)
SKPaymentQueue.default().add(payment)

根据上面的代码部分,我试图购买一个产品,但有时会立即出现以下方法

代码语言:javascript
复制
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {

而不提示窗口输入用户iTunes凭据,并将错误的SKPaymentTransaction状态返回为.purchased

这里很难找到这个问题,因为它是一个随机问题。

EN

回答 2

Stack Overflow用户

发布于 2020-11-17 23:17:51

这可能是一种场景,其中:

  1. 您在支付队列中有一堆未完成的交易,因此updatedTransactions委托实际上正在处理您之前进行的购买。如果是这种情况,您应该确保为通过队列的每个事务调用finishTransaction(_:) (在您端完成任何所需的处理之后)。来自苹果的指南在这里有更多细节:https://developer.apple.com/documentation/storekit/skpaymentqueue/1506003-finishtransaction.

  1. 你在updatedTransactions上看到的交易实际上是之前购买的续费。请记住,可以随时调用updatedTransactions

在任何一种情况下,我都希望最终会显示购买提示。如果上面的#1是问题所在,事情可能会变得非常缓慢和停滞。

票数 0
EN

Stack Overflow用户

发布于 2020-11-17 14:37:54

不要依赖状态通知

您可以通过以下步骤进行验证

  1. fetch Product info
  2. make

(获取产品信息并使状态变为状态)

如果你想了解更多,请参考下面的博客:

https://medium.com/revenuecat-blog/ios-subscriptions-are-hard-d9b29c74e96f

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

https://stackoverflow.com/questions/64746799

复制
相关文章

相似问题

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