Автоматическое продление подписки глубокое понимание - PullRequest
0 голосов
/ 23 ноября 2018

Я внедряю покупки в приложении с подпиской на автоматическое продление в своем приложении с помощью SwiftyStoreKit.Мне просто нужно кое-что понять.

Прежде всего это мой код:

func verifyPurchase(product: SKProduct) {
    NetworkAcivityIndicatorManager.NetworkOperationStaterd()
    let appleValidator = AppleReceiptValidator(service: .sandbox, sharedSecret: SharedSecret)
    SwiftyStoreKit.verifyReceipt(using: appleValidator) { (result) in
        NetworkAcivityIndicatorManager.NetworkOperationFinished()
        print("NEW IAP: Verify Purchase")

        switch result {
        case .success(receipt: let receipt):
            if product.productIdentifier == self.bundleID + "." + RegisteredPurchases.Subscription.rawValue {
                let purchaseResult: VerifySubscriptionResult = SwiftyStoreKit.verifySubscription(ofType: .autoRenewable, productId: product.productIdentifier, inReceipt: receipt, validUntil: Date())
                print("NEW IAP: Verify Subscription: \(purchaseResult)")

                switch purchaseResult {
                    case .expired(let expiresDate):
                        print("NEW IAP: Expired: \(expiresDate)")
                    case .purchased(let expiresDate):
                        print("NEW IAP: Purchased: \(expiresDate)")
                    case .notPurchased:
                        print("NEW IAP: Not Purchased")
                }

            } else {
                let purchaseResult = SwiftyStoreKit.verifyPurchase(productId: product.productIdentifier, inReceipt: receipt)
                print("NEW IAP: Verify Purchase: \(purchaseResult)")
            }
        case .error(let error):
            print("NEW IAP: Verify Purchase: \(error.localizedDescription)")
        }
    }
}

После первой покупки у меня есть 3 минуты (песочница) до полученияистек, но что это значит на производстве?Нужно ли продлевать подписку или совершать какие-либо действия с ней?

                switch purchaseResult {
                    case .expired(let expiresDate):
                        print("NEW IAP: Expired: \(expiresDate)")
                    case .purchased(let expiresDate):
                        print("NEW IAP: Purchased: \(expiresDate)")
                    case .notPurchased:
                        print("NEW IAP: Not Purchased")
                }

Если результат покупки куплен, мне не нужно ничего делать, если он не куплен, мне нужно приобрести его иесли его срок истек, мне нужно позвонить обновить квитанцию?не купить его еще раз?

func refreshReceipt() {
    SwiftyStoreKit.fetchReceipt(forceRefresh: true) { (result) in
        print("NEW IAP: Receipt Refreshed: \(result)")
    }
}
...