Acquisti in app: Implementare l’in app purchase

Fare acquisti e sbloccare funzioni direttamente dall’applicazione.

L’In App Purchase è un sistema di pagamento che ci permetterà di far acquistare plugin, livelli, canzoni, elementi aggiuntivi…ecc, direttamente all’ interno dell’ applicazione che l’utente sta utilizzando, e che magari ha scaricato gratis da AppStore.

ios_iap_cover

La documentazione ufficiale è ricca di guide logiche sull’IAP (In App Purchase), ma sono tutte così complicate nessuna mostra il modo più semplice ed efficace per integrare componenti aggiuntivi nella nostra app e quali delegate richiamare. Ecco lo scopo di questa guida: IAP facile, semplice e veloce da implementare!

Iniziamo

In primo luogo, per questo tutorial, ho intenzione di presupporre un paio di cose:

1. desideri implementare IAP attraverso un “pulsante”.
2. che non avete troppi oggetti da acquistare (se si dispone di molti IAP, allora è probabilmente meglio usare UITableView per fare una lista)
3. che tutti gli elementi/caratteristiche di IAP sono già presenti nel pacchetto dell’applicazione (ad esempio, non si dispone di IAP da scaricare: articoli, foto…etc)
Ovviamente sono linee guida…vedrai, una volta capito il meccanismo, potrai implementare in tutti i modi possibili consoni all’app.

In questo progetto posizioneremo 2 pulsanti in una view. Col primo pulsante presenteremo una funzionalità già disponibile, col secondo una funzionalità che richiede l’IAP.

Come al solito, apri XCode, crea un progetto del tipo Single View Application, apriamo il file XIB ed inseriamo i due pulsanti, inserisci anche un’immagine di sfondo al pulsante come “indicatore” che la feauture è bloccata dall’IAP.
Ho inoltre inserito una UILabel in basso per far fare qualcosa quando si premono i pulsanti: ad esempio in questo caso visualizzeremo “Funzione 1” quando premiamo il primo pulsante e “Funzione 2” quando premiamo il secondo.

1_IAP

Siccome, però Funzione2 è un oggetto IAP, dobbiamo controllare se l’utente ha acquistato la funzione prima di mostrare “Funzione 2″. Innanzitutto implementiamo le funzioni principali:
Dichiariamo 2 IBAction per i 2 pulsanti, e dichiariamo anche gli IBOutlet per i pulsanti e la label nel file .h. Dichiariamo anche un UIAertView così potremo controllare se l’utente risponde a questo alert in seguito. Ricordiamoci di fare il syntesize di entrambi gli oggetti nel file .m.

Ecco come si presenta il file .h:

[code lang=”obj-c”]
#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h>

@interface ViewController : UIViewController {
IBOutlet UIButton *feature2Btn;
IBOutlet UILabel *featureLabel;
UIAlertView *askToPurchase;
}

@property (nonatomic, retain) UIButton *feature2Btn;
@property (nonatomic, retain) UILabel *featureLabel;

-(IBAction)doFeature1:(id)sender;
-(IBAction)doFeature2:(id)sender;

@end
[/code]

Adesso apriamo il file XIB e colleghiamo tutti gli outlet del file owner a quelli dell’interfaccia. Connettiamo inoltre le IBAction ai pulsanti scegliendo Touch Up Inside. Nota che abbiamo bisogno dell’outlet del pulsante 2 perché dovremo cambiare l’icona in maniera condizionale successivamente nel codice. Avendoli entrambi dichiarati ci facilitiamo le cose.

Adesso apriamo il file .m e scriviamo i metodi che verranno eseguiti alla pressione dei pulsanti………..

download ebook