2017-11-01 15 views
0

サブスクリプションの有効期限について質問があります。私は領収書を検証する場所でエラーが発生していない作品と次のコードを持っています。私の有効期限は変わりません。ですから、定期購読を何度も購入した場合、有効期限は同じに留まり、有効期限は「新しい」よりも「古い」ため、常にelse句になります。自動更新サブスクリプションの有効期限

私はそれに間違っていますか?

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) 
    } 

したがって、このようなコンソール出力:

EXPIRATIONDATE:2017年11月1日午前9時08分11秒0000
今の日付:2017年11月1日午前10時35分11秒 +0000

私は何を欠場しますか?

ありがとうございました!

答えて

0

ああ私のサンドボックスユーザーが多すぎる取引をしたことが分かりました。だから私は別のものを作成し、コードは期待どおりに動作します。

関連する問題