2011-05-23 18 views
7

Uygulama içi faturalandırmayla "yönetilen" satın alma işlemlerini kullanarak uygulamamın çeşitli özelliklerini yükseltmek/kilidini kaldırmak için bir sistem uygulamaya çalışıyorum ve ayrıntılı belgelerin veya örneklerin eksikliğinden rahatsız oluyorum.Uygulama içi fatura işlemlerini harici bir sunucuda güvenli bir şekilde nasıl yönetebilirim?

içeriği sunma veya yönetmek için uzak bir sunucu kullanıyorsanız, uygulamanız doğrulamak var:

Benim uygulamanın amacı/almak benim kendi sunucudan veri ayrıştırmak ve ekran ve http://developer.android.com/guide/market/billing/billing_best_practices.html devletler üzerinde dokümantasyon etmektir Bir kullanıcı içeriği her eriştiğinde kilitlenen içeriğin satın alma durumu.

Sorum şu: Bu, gerçek iş akışı açısından bunun hakkında en iyi yolu nedir?

Anlayabildiğim kadarıyla, başarılı bir satın alımda, satın alma bilgilerini hem sunucumda hem de uygulamada yerel olarak depolarım. Uygulama çalıştırıldığında, sipariş kimliğini sunucuma gönderirim ve sunucu siparişin geçerli olup olmadığını kontrol eder (önce siparişin sunucumun veritabanında olduğunu kontrol eder ve ikinci olarak siparişi el ile iptal etmediğimi kontrol ederim). sebebi ne olursa olsun).

Bu doğrulanırsa, sunucu, istenen özelliklerin "lisanslı" olduğu uygulamaya bir yanıt gönderir ve uygulama, kullanıcıya kilitlenen özellikleri/içeriği sağlar. Bununla görebilirsiniz

bariz sorunlar şunlardır:

  1. bir köklü kullanıcı kolayca sadece geçerli bir sipariş kimliğini enjekte etmek (diğer herhangi bir yöntemi ben mağaza sipariş bilgilerine kullanabilir veya) yerel uygulamanın SQLITE veritabanını değiştirebilir .
  2. Ağ erişimi kapalıysa veya sunucum kapalıysa, uygulamanın, tüm kullanıcının satın alınmış özellikleriyle (önbelleğe alınmış verilerle) çalışabilmesini istiyorum.
Ben doğrulama isteği ile cihaz bir nevi tanımlama gönderme ve benim sunucunun sonunda bu izlenmesini içerir görebilirsiniz ilk soruna

Potansiyel yolları - cihazlardan çok sayıda sırasını erişiyorsa sırasını iptal kısa bir süre. İkinci problem için yeterli bir çözüm bulamıyorum. İlk olarak doğrulamanın her başarılı geçtiğini, bu doğrulamanın gerçekleştiği zamanı saklayacağımı düşündüm. Ardından, uygulama, son başarılı doğrulamanın 48 saat sonrasındaki kilidi açılmış özellikler ile çalışmaya devam eder. Bununla ilgili sorun, bu zaman değerini nasıl güvenli bir şekilde saklayabilirim? Yine, köklü kullanıcılar basit bir şekilde değeri değiştirebilir ve uygulama hiçbir şekilde akıllı olmaz.

Uygulama içi faturalandırma alımlarını yönetmek için sunucu tabanlı bir sistem tasarlayan var mı ve bazı önerilerde bulunabilir mi?

cevap

0

Google Lisanslaması, canlı kalmanız için önbelleğe alınmış bir "Lisansın geçerli olduğunu" yanıtlamasına izin vermenin bir yolunu sağlar.

Application Licensing

Ayrıca, bir depoladığınız verileri şifreleyebilirsiniz. Onlar için ödeme yapmışlarsa, şifresini çözebilirler. Ağ erişimi yoksa, Uygulama Lisanslaması (şu anda Apache Lisansı, Sürüm 2.0 kapsamında lisanslıdır) olarak benzer bir önbellekleme planı uygulayın.

İlgili konular