2017-09-20 6 views
0

Ich versuche, den In-App-Kauf (nicht erneuerbares Abonnement) wiederherzustellen, falls ein Nutzer die App auf einem neuen Telefon installiert oder auf seinem Telefon neu installiert. Ich mag das ursprüngliche Kaufdatum für einen In-App-Kauf erhalten mit der MethodeSwift3 - Abrufen des Transaktionsdatums beim Wiederherstellen von In-App-Kauftransaktionen

func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) { 

     for transaction in queue.transactions{ 
      let t : SKPaymentTransaction = transaction 
      let prodID = t.payment.productIdentifier as String 
      print("transaction finished",prodID) 
      if(prodID == "com.netvariant.FamousFaces.FullAccess"){ 
       print(">>>>>>>>>>>>>", t.original?.transactionDate) 
       print(">>>>>>>>>>>>>", t.transactionDate) 
       defaults.set("Y", forKey: "adPurchase") 
       NotificationCenter.default.post(name: Notification.Name(rawValue: "removeAds"), object: nil) 
       print("working") 
      } 

     } 
    } 

Das Problem Transaktionsdatum ist gleich Null in beiden Fällen bei der Rückkehr. Was habe ich im Code vermisst? und ist dies der beste Weg, um wiederhergestellte Einkäufe zu bearbeiten?

Ich möchte das Datum erhalten, um zu berechnen, ob die Abonnementsperiode des Benutzers (1 Monat) abgelaufen ist oder nicht. Die Wiederherstellung ist erfolgreich, aber wie ich das Datum in Null erwähnt habe.

Vielen Dank.

Antwort

1

Sie können SwiftyStoreKit zum Überprüfen und Ausführen von InApp Purchase verwenden. Der folgende Code zum Überprüfen des InApp-Kaufs ist abgelaufen oder nicht. Für Benutzer diesen Code, Ihre SwiftyStoreKit in Ihrem Projekt.

let appleValidator = AppleReceiptValidator(service: .production) 
SwiftyStoreKit.verifyReceipt(using: appleValidator, password: "Enter your inapp secret key") { result in 
    switch result { 
    case .success(let receipt): 
     // Verify the purchase of a Subscription 
     let purchaseResult = SwiftyStoreKit.verifySubscription(
      type: .autoRenewable, // or .nonRenewing (see below) 
      productId: "Enter your inapp product key", 
      inReceipt: receipt) 

     switch purchaseResult { 
     case .purchased(let expiryDate, _): 

      print("Product is valid until \(expiryDate)") 
     case .expired(let expiryDate, _): 

      print("Product is expired since \(expiryDate)") 
     case .notPurchased: 
      print("The user has never purchased this product") 
     } 

    case .error(let error): 
     print("Receipt verification failed: \(error)") 
    } 
} 
+0

Wie könnte ich diese Bibliothek mit Pods installieren? –

+0

Ja, Sie können mit Pods installieren. Überprüfen Sie diesen Link: https://cocoapods.org/?q=SwiftyStoreKit – Hiren

+0

Vielen Dank. Aber es gibt ein Problem, ich habe das IAP mit dem Sandbox-Konto gekauft und die Antwort ist immer "nicht gekauft". Habe ich die Bibliothek, um das Produkt zu kaufen, oder kann ich es aus Storekit tun? –

Verwandte Themen