2013-05-02 3 views
5

Ho un'applicazione iOS (e un sito Web). Ci dovrebbe essere un'opzione utente premium che l'utente abbia accesso a contenuti speciali se lui/lei è un utente premium. Gli utenti possono diventare utenti premium su base mensile o annuale.Devo creare un abbonamento di consumo o non rinnovabile per un account premium?

Prima domanda: Apple consente di offrire gli stessi prodotti per l'acquisto sul sito Web e tramite InAppPurchase (seguendo le regole di Apple - non ci saranno collegamenti o indicazioni nell'app che lo stesso può essere acquistato sul sito web). Quindi, se un utente acquista l'account premium tramite InAppPurchase, può accedere al sito Web e ad un utente premium e viceversa.

Se ciò è consentito, è meglio aver implementato la funzionalità utente premium utilizzando un prodotto di tipo consumabile e avere il server gestire tutto o utilizzare un abbonamento non rinnovabile?

consumabili Approccio Do the InAppPurchase e quindi inviare una richiesta al server di dire che l'utente corrente è un utente premium per un mese/anno e poi ogni volta che i lanci di app/utente accede, chiamare un API per verificare se la l'utente corrente è un utente premium o meno.

I casi difficili da gestire sono 1. Quando l'utente utilizza l'app esattamente quando scade il suo stato utente premium. 2. Se la rete si interrompe subito dopo l'esecuzione di InAppPurchase e la richiesta al server è incompleta.

Approccio abbonamento non rinnovabile Non sono sicuro di come funzioni esattamente, ma suppongo che sarebbe simile a quello consumabile.

Quale dei due approcci sarebbe meglio per ripristinare le transazioni precedenti?

risposta

5
  1. Yep finché si fornisce la Funzione Premium in app (nel nostro applicazione Facebook legata al iOS uno, abbiamo implementato i crediti di Facebook per le stesse caratteristiche, per esempio)
  2. La nostra applicazione (che stava usando un consumabili in-app per abilitare una funzionalità premium) sono stati rifiutati un paio di volte fino a quando non siamo passati a un abbonamento non rinnovabile. La Funzione Premium ha avuto un limite di tempo e il motivo Apple ha respinto era che se la Funzione Premium richiede tempo diverso da funzioni aggiunte si deve utilizzare un abbonamento non rinnovabile dato che questo è il suo scopo

casi Tricky in realtà non sono così complicati. Per il primo, l'app recupera il tempo di scadenza dal server (lo hai salvato dopo aver acquistato l'abbonamento giusto? ;-)) e quando l'utente tenta di utilizzare una funzionalità premium implementa un controllo per assicurarsi che sia ancora consentito. Per il secondo, salvare l'acquisto nel telefono e quindi inviare la ricevuta al server per la convalida. Solo quando il server è raggiungibile e dice che la ricevuta è valida, eliminala dal telefono. In caso contrario, è possibile verificare all'avvio se nel telefono sono presenti ricevute non inviate che è necessario inviare nuovamente al server per la convalida.

+0

Grazie mille Andre! Un'altra cosa, per tenere traccia della durata dell'utente premium, dovremmo tenere traccia tramite una chiamata API al server o dovremmo controllare l'app stessa utilizzando il tempo di transazione. Come dovremmo gestire anche più account, cioè se l'utente esegue InAppPurchase e poi accede con un altro account? – vivek241

+1

Ti suggerisco di tenere traccia della durata con una chiamata API al tuo server. Per più account, gli abbonamenti non rinnovabili sono legati all'utente che lo ha acquistato e il tuo server ne è a conoscenza.Quindi, se l'Apple ID che ha appena acquistato il premio, si disconnette e si collega nuovamente con un altro account, le funzioni premium dovrebbero essere disattivate imho. – andreagiavatto

+0

L'ID Apple è lo stesso, ma l'utente si disconnette e accede a un altro account nell'app. Come lo gestiamo? – vivek241