2017-09-20 27 views
0

ユーザーが新しい電話にアプリをインストールしたり、携帯電話に再インストールする場合、アプリ内購入(非更新購読)を復元しようとしています。私はSwift3 - アプリ内購入トランザクションを復元するときの取引日を取得

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

     } 
    } 

問題は両方のケースではnilを返すにおける取引日である方法を使用して、アプリ内購入のための最初の購入日を取得したいです。私はコードで何が間に合わなかったのですか?これは復元された購入を処理する最善の方法ですか?

ユーザーの購読期間(1か月)が過ぎているかどうかを計算したい場合があります。リストアは成功しましたが、私はnilで日付を述べました。

ありがとうございます。

答えて

1

確認のためにSwiftyStoreKitを使用し、InApp購入を実行できます。 InApp購入の有効期限が切れているかどうかを確認するためのコードこのコードでは、プロジェクト内のSwiftyStoreKitです。

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

どのように私はこのライブラリを、ポッドを使ってインストールできますか? –

+0

はい、Podを使用してインストールできます。このリンクを確認してください:https://cocoapods.org/?q=SwiftyStoreKit – Hiren

+0

ありがとうございます。しかし、問題がある、私はサンドボックスアカウントとIAPを購入し、応答は常に "購入されていない"です。私は製品を購入するライブラリを持っているのですか、または私はstorekitからそれを行うことができますか? –

関連する問題