Покупка из приложения не удалась при подтверждении чека - PullRequest
2 голосов
/ 13 апреля 2020

В моем приложении 3 покупки в приложении. Я проверил их в среде песочницы, и они работают как положено. Я использую SwiftyStoreKit инфраструктуру для покупок в приложении.

Для совершения покупки используется следующий код.

func purchase(_ purchase: String, quantity: Int = 1, completion: @escaping ((_ result: PurchaseDetails?)->Void)) {
        ProgressIndicatorManager.shared.show()

        SwiftyStoreKit.purchaseProduct(purchase) { (result) in
            ProgressIndicatorManager.shared.dismiss()
            if case .success(let purchase) = result {
                // Deliver content from server, then:
                if purchase.needsFinishTransaction {
                    SwiftyStoreKit.finishTransaction(purchase.transaction)
                }
                completion(purchase)
            } else {
                completion(nil)
            }
            if let alert = self.alertForPurchaseResult(result) {
                self.showAlert(alert)
            }
        }
    }

После завершения покупки я подтверждаю квитанцию.

    /// This function is use for verify receipt
    /// - Parameters:
    ///     - purchase: purchase identifier
    func verifyPurchase(_ purchase: String, completion: @escaping (VerifyPurchaseResult) -> Void) {
        ProgressIndicatorManager.shared.show()
        verifyReceipt { result in
            ProgressIndicatorManager.shared.dismiss()
            switch result {
            case .success(let receipt):
                let purchaseResult = SwiftyStoreKit.verifyPurchase(
                    productId: purchase,
                    inReceipt: receipt)
                self.showAlert(self.alertForVerifyPurchase(purchaseResult, productId: purchase))
                completion(purchaseResult)
            case .error:
                self.showAlert(self.alertForVerifyReceipt(result))
            }
        }
    }

В песочнице все отлично работает. Тем не менее, группа проверки Apple сообщила, что они получают ошибку, показанную на прикрепленном скриншоте error screenshot

...