2017-11-01 3 views
0

가입 만료일에 대해 질문이 있습니다. 영수증의 유효성을 검사 할 때 오류가없는 곳에서 코드를 사용하고 약간의 문제가있는 곳에서 다음 코드를 사용합니다. 내 만료일은 변하지 않습니다. 따라서 구독을 반복해서 살면 만료 날짜는 동일하게 유지되고 만료 날짜가 "새"것보다 "오래된"이기 때문에 항상 다른 조항에 빠지게됩니다.자동 갱신 subscription의 만료일

내가 뭘 잘못 했니?

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시 8분 11초 0000
현재의 날짜 : 2017년 11월 1일 10시 35분 11초 +0000

무엇이 놓치면 좋을까요?

감사합니다.

답변

0

오하이오 내 샌드 박스 사용자가 너무 많은 거래를했다는 것을 알았습니다. 그래서 나는 또 하나를 만들고 코드가 예상대로 작동합니다.

관련 문제