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

自动续订,Swift

如何解决自动续订,Swift

我正在实现具有所有所需详细信息的自动续订服务。

我已经完成了整个过程,除2个小问题外,其他一切都正常运行

  1. 我正在用沙盒进行测试,并且第一次点击购买产品时,它要求我登录并输入沙盒用户的密码。我以为这只是一个沙盒(“问题”),所以我退出并测试了没有沙盒的情况。 但是,如果我点击购买产品,它会要求我使用苹果ID登录。我看到带有订阅的某些应用程序没有此行为。我该如何解决

P.s。我的应用程序提供了“使用苹果登录”按钮,即使这样,它仍要求我使用可怕的警报登录苹果。

  1. 如果我点击具有以下代码的还原:

     SKPaymentQueue.default().restoreCompletedTransactions()
    

我的PaymentQueue中的正确transactionStats被调用。 (。恢复)

  for transaction in transactions {
        
        // Switch between our transactionState
        switch transaction.transactionState {
        
        case .purchased:
            Log.debug("Purchased transaction: \(transaction.payment.productIdentifier)")

        case .restored:
            Log.debug("Restore transaction: \(transaction.payment.productIdentifier)")

        case .Failed:
            Log.debug("Failed transaction: \(transaction.payment.productIdentifier)")

        case .deferred:
            Log.debug("Deferred transaction state")
        case .purchasing:
            Log.debug("Purchasing transaction state")
        default:
            Log.debug("Unhandled transaction state")
        }
    }

但是,如果我点击“还原购买”,然后尝试购买某物,即使它应输入.purchased,它也会进入.restored状态。

如果我先点击“购买产品”,我就不会遇到这个问题。

我通过添加以下内容来确保每笔交易均已结束:

SKPaymentQueue.default().finishTransaction(transaction)

您是否知道为什么会发生这种情况?苹果会处理这个问题,所以我真的不知道我是否可以做点什么,但是为什么会这样呢?

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