Ho dato una rapida lettura sia al tutorial di Erel sia alla documentazione su Android Developer.
Il sistema appare ovviamente complesso, ma credo che restringendo le cose solo a ciò che occore veramente ad una specifica app molti aspetti possono essere "trascurati".
La prima decisione da prendere è se vendere un Prodotto (nei giochi sono monete, trucchi e strumenti vari) oppure un Abbonamento (mensile, annuale o di periodo definito).
I primi possono essere "consumati", ovvero l'acquirente li utilizza nell'app (ad esempio, spende le monete) e quindi si possono riacquistare.
I secondi consentono di applicare un canone all'utilizzo temporale di un modulo dell'app (o anche dell'intera app); ad esempio un'app che fornisca notizie meteo e sportive potrebbe avere la parte meteo gratuita e quela sportiva ad abbonamento mensile. Ogni mese ci pensa BigG a riscuotere (e nel caso la transazione fallisca, l'app ne sarebbe informata semplicemente perchè il modulo non rinnovato non verrebbe elencato tra quelli "posseduti" dallo specifico utente; ciò dalla versione n3 di in-app billing).
Tutti gli elementi acquistabili vanno definiti nel pannello dello sviluppatore con codici identificativi e prezzi.
In pratica è come se l'app interrogasse la sezione privata dell'utente sullo Store per sapere quali moduli e funzionalità ha al momento attivi e poi si regolasse di conseguenza.
Ciò che mi lascia leggermente perplesso è che, secondo il tutorial, una variabile Process_Global dovrebbe contenere la Key dell'app definita nel pannello sviluppatore (benché eventualmente offuscata). Craccando l'app salterebbe fuori questa key, quindi mi domando se sia possibile sostituire (in un apk pirata) la Key originale con quella del truffatore e ricevere così compensi per il lavoro altrui.. Se così fosse, avremmo il famoso gigante con i piedi d'argilla!
udg