2016-03-31 7 views
2

Tüketimi olmayan bir uygulama içi satın alma seçeneği ile basit bir uygulamanız var.Kullanıcı Zaten Uygulama İçi Satın Aldıysa Nasıl Kontrol Edilir? Erişim Seviyesini/Haklarını Belirlemek için

İlk görüş denetleyicimden tek bir 'enter' düğmesine sahibim.

Bu düğme, bir 'ücretsiz' kullanıcı (bir sarf malzemesi satın alma işlemi gerçekleştirmemiş) bir TabBarController "A" ve bir dizi görüntüleme ve bir diğer "farklı" görünümler için diğer TabBarController "B" ye bir "ücretli" kullanıcı gönderecektir. . Bu görüşler asla kesişmeyecek.

Kodun, bir kullanıcının uygulama içi satın alma işlemini gerçekleştirip gerçekleştirmediğini veya başka bir şekilde yapıp yapmadığını etkin bir şekilde ayırt edip edemediğini kontrol etmek isterim.

cevap

1

Take a look at this tutorial :-) herhangi bir cevap, yorum veya düşünceler için şimdiden

import UIKit 
import StoreKit 

class MainMainViewController: UIViewController, UIScrollViewDelegate, SKProductsRequestDelegate, SKPaymentTransactionObserver { 

let defaults = NSUserDefaults.standardUserDefaults() 
var product_id: NSString?; 

... 

    override func viewDidLoad() { 

     product_id = "some.iap.id"; 
     SKPaymentQueue.defaultQueue().addTransactionObserver(self) 


    super.viewDidLoad() 
} 

@IBAction func Enter(sender: AnyObject) { 

    //Check if product is purchased 
    if (defaults.boolForKey("purchased")){ 
     print("User has purchased da goods!") 

     // Grant or otherwise full access based on whether user has purchased/not purchased. 

     // Goto TabBarController A - FULL Access: 
     let vc = self.storyboard!.instantiateViewControllerWithIdentifier("TabBarControllerPaid") as! TabBarControllerPaid 
     self.presentViewController(vc, animated: true, completion: nil) 
    } 

    else if (!defaults.boolForKey("purchased")){ 
      print("user has NOT purchased yet") 

     // Goto TabBarController B - PARTIAL Access: 
     let vc = self.storyboard!.instantiateViewControllerWithIdentifier("TabBarControllerFree") as! TabBarControllerFree 
     self.presentViewController(vc, animated: true, completion: nil) 
    } 


} 

} 

Çok teşekkürler, "Satın Alınan Öğeler" bölümünde:

İşte benim kodudur.

Satın alınan öğelerin kaydını nasıl tutacağınızı gösterir (ve bu eğiticiyi yakından izliyorsanız, evet NSUserDefaults'u kullanırsınız) ve ayrıca uygulama silinirse önceki satın alma işlemlerinin nasıl geri yükleneceğini öğreneceksiniz. Bir kullanıcının yeni cihazına taşındı.

Yukarıda kodunuzda "defaults.boolForKey("purchased")" görüyorum. Görebildiğim bu kodla ilgili en büyük sorun, yalnızca bir öğenin satın alınmasına izin vermesidir ("satın alınan" booleanın NSUserDefaults'da var olması veya olmaması).

+0

Harika eğitim - bir daha fazla akım için sorun değil! Bir gün yaşlı inanıyorum! Tüm kodumu bu içeriğe göre değiştirebilirim. İkinci paranızın sadece bir yan notu - sadece bir sarf malzemeye sahip olmak istemediğimde, sadece yukarıdaki koduma bağlı kalmam mı? Bir IAP ürün uygulaması için bu şekilde iyi mi? Uygulamamın, kullanıcının İnternet bağlantısı yoksa ürünü satın alıp almadığını belirlemesi mümkün mü? İnanıyorum ki? –