自动续订,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 (将#修改为@)