2017-11-01 9 views
0

Haben Sie eine Frage zum Ablaufdatum des Abonnements? Ich habe folgenden Code mit funktioniert ohne Fehler, wo ich den Empfang bestätigen und wo ich ein kleines Problem habe. Mein Ablaufdatum ändert sich nicht. Also, wenn ich ein Abonnement immer wieder kaufe, bleibt mein Ablaufdatum gleich und ich falle immer in die else-Klausel, weil das Ablaufdatum "älter" als "neu" ist.Ablaufdatum des automatisch erneuernden Abonnements

Was mache ich falsch damit?

private func complete(transaction: SKPaymentTransaction) { 

     let receiptValidator = ReceiptValidator() 
     let result = receiptValidator.validateReceipt() 

     switch result { 
     case let .success(receipt): 
      guard let purchase = receipt.inAppPurchaseReceipts?.filter({ $0.productIdentifier == IAPProducts.autoRenewable.rawValue }).first else { 
       NotificationCenter.default.post(name: Notification.Name(transaction.payment.productIdentifier), object: nil) 
       return 
      } 

      if purchase.subscriptionExpirationDate?.compare(Date()) == .orderedDescending { 
       print("expirationDate: \(purchase.subscriptionExpirationDate!)") 
       print(" now's date: \(Date())") 
      // true clause stuff 
      } else { 

       // false clause stuff 
       print("Subscription has ended") 
      } 

      // other stuff 

     case let .error(error): 
      print("receipt is invalid") 
      print(error.localizedDescription) 
     } 

     paymentQueue.finishTransaction(transaction) 
    } 

So ist die Ausgabe der Konsole wie folgt aus:

expirationDate: 2017.11.01 09.08.11 0.000
jetzt das Datum: 2017.11.01 10.35.11 +0000

Was vermisse ich?

Vielen Dank!

Antwort

0

Oh, ich habe herausgefunden, dass mein Sandbox-Benutzer zu viele Transaktionen gemacht hat. Also erstelle ich einen anderen Code und nun funktioniert der Code wie erwartet.

Verwandte Themen