Condividi tramite


Nozioni di base e configurazione per l'acquisto in-app in Xamarin.iOS

L'implementazione degli acquisti in-app richiede all'applicazione di usare l'API StoreKit nel dispositivo. StoreKit gestisce tutte le comunicazioni con i server iTunes di Apple per ottenere informazioni sul prodotto ed eseguire transazioni. Il profilo di provisioning deve essere configurato per l'acquisto in-app e le informazioni sul prodotto devono essere immesse in iTunes Connessione.

StoreKit manages all communication with Apple’s as shown in this chart

L'uso dell'App Store per fornire l'acquisto in-app richiede la configurazione e la configurazione seguenti:

  • iTunes Connessione: configurazione dei prodotti per vendere e configurare account utente sandbox per testare l'acquisto. Devi anche aver fornito le tue informazioni bancarie e fiscali ad Apple in modo che possano rimettere i fondi raccolti per tuo conto.
  • Portale di provisioning iOS: creazione di un identificatore di bundle e abilitazione dell'accesso all'App Store per l'app.
  • Store Kit : aggiunta di codice all'app per la visualizzazione di prodotti, l'acquisto di prodotti e il ripristino delle transazioni.
  • Codice personalizzato: per tenere traccia degli acquisti effettuati dai clienti e fornire i prodotti o i servizi acquistati. Potrebbe anche essere necessario implementare un processo sul lato server per convalidare le ricevute se i prodotti sono costituiti da contenuto scaricato da un server (ad esempio libri e problemi relativi alle riviste).

Esistono due "ambienti server" di Store Kit:

  • Produzione : transazioni con denaro reale. Accessibile solo tramite le applicazioni inviate e approvate da Apple. I prodotti di acquisto in-app devono anche essere esaminati e approvati prima che siano disponibili nell'ambiente di produzione.
  • Sandbox : dove si verificano i test. I prodotti sono disponibili qui immediatamente dopo la creazione (il processo di approvazione si applica solo all'ambiente di produzione). Le transazioni nella sandbox richiedono agli utenti di test (non id Apple reali) di eseguire transazioni.

Regole di acquisto in-app

Non puoi accettare altre forme di pagamento per prodotti o servizi digitali all'interno della tua app, né menzionarli o fare riferimento ai tuoi utenti dall'interno di un'app. Ciò significa che non puoi accettare carte di credito o PayPal quando l'acquisto in-app è il meccanismo di pagamento più appropriato. Esiste un caso speciale per l'acquisto di prodotti digitali all'esterno dell'app, ma per l'uso nell'app, ad esempio i libri di acquisto in un sito Web associato a un "account di accesso" specifico e l'uso di tale "account di accesso" nell'app consente all'utente di accedere ai libri acquistati. Le applicazioni che operano in questo modo non sono autorizzate a menzionare o collegare alla funzionalità di acquisto esterna: gli sviluppatori devono comunicare questa funzionalità ai propri utenti in altri modi (ad esempio tramite marketing di posta elettronica o altri canali diretti).

Tuttavia, poiché non puoi usare acquisti in-app per beni fisici, in tal caso sei autorizzato a usare un meccanismo di pagamento alternativo (ad esempio, carta di credito, PayPal) dall'interno dell'app.

Apple deve approvare ogni prodotto prima di procedere alla vendita: il nome, la descrizione e uno screenshot del "prodotto" è necessario per la revisione. I tempi di revisione dei prodotti sono uguali a per le revisioni delle applicazioni.

Non è possibile scegliere alcun prezzo per il prodotto. È possibile selezionare solo un "piano tariffario" con un valore specifico in ogni paese/valuta supportato da Apple. Non è possibile avere un livello di prezzo diverso in mercati diversi.

Impostazione

Prima di scrivere codice di acquisto in-app è necessario eseguire alcune operazioni di configurazione in iTunes Connessione ( itunesconnect.apple.com) e nel portale di provisioning iOS ( developer.apple.com/iOS).

Questi tre passaggi devono essere completati prima di scrivere codice:

  • Account sviluppatore Apple: inviare le informazioni bancarie e fiscali ad Apple.
  • Portale di provisioning iOS: assicurarsi che l'app abbia un ID app valido (non un carattere jolly con un asterisco * in esso) e che l'acquisto di app sia abilitato.
  • iTunes Connessione Gestione applicazioni: aggiungere prodotti all'applicazione.

Account per sviluppatore Apple

La creazione e la distribuzione di app gratuite richiede una configurazione molto piccola in iTunes Connessione, tuttavia per vendere app a pagamento o acquisti in-app è necessario fornire a Apple informazioni bancarie e fiscali. Fare clic su Contratti, Imposte e Banche dal menu principale illustrato di seguito:

Click on Agreements, Tax and Banking from the main menu

L'account sviluppatore deve avere in vigore un contratto applicazioni a pagamento iOS, come illustrato in questo screenshot:

Your Developer Account should have an iOS Paid Applications contract in effect

Non sarà possibile testare le funzionalità storekit finché non si dispone di un contratto di applicazioni a pagamento iOS: le chiamate StoreKit nel codice avranno esito negativo finché Apple non ha elaborato i contratti , le imposte e le informazioni bancarie .

Portale di provisioning iOS

Le nuove applicazioni vengono configurate nella sezione ID app del portale di provisioning iOS. Per creare un nuovo ID app, passare alla sezione Centro membri del portale di provisioning iOS, passare alla sezione Certificati, identificatori e profili del portale e fare clic su Identificatori in App iOS. Fare quindi clic su "+" in alto a destra per generare un nuovo ID app.

Modulo per la creazione di nuovi ID app

ha un aspetto simile al seguente:

The form for creating new App IDs

Immettere un elemento appropriato per la descrizione, in modo da poter identificare facilmente questo ID app in un elenco. Per Prefisso ID app selezionare l'ID team.

Formato suffisso id bundle/ID app

È possibile usare qualsiasi stringa desiderata per l'identificatore bundle (purché sia univoco nell'account), tuttavia Apple consiglia di seguire il formato DNS inverso anziché usare qualsiasi stringa arbitraria. L'applicazione di esempio che accompagna questo articolo usa com.xamarin.storekit.testing per l'identificatore bundle, ma sarebbe ugualmente valida usare un identificatore come my_store_example (anche se Apple non lo consiglia).

Importante

Apple consente anche l'aggiunta dell'asterisco con caratteri jolly alla fine di un identificatore bundle in modo che un singolo ID app possa essere usato per più applicazioni, ma non è possibile usare GLI ID app con caratteri jolly per In-AppPurchase. Un esempio di identificatore bundle con caratteri jolly potrebbe essere com.xamarin.*

Abilitazione di servizio app

Si noti che l'acquisto in-app verrà abilitato automaticamente nell'elenco Servizi:

In-App Purchase will be automatically enabled in the Services list

Profili di provisioning

Creare profili di provisioning di sviluppo e produzione come si farebbe normalmente, selezionando l'ID app configurato per l'acquisto in-app. Per altre informazioni, vedere le guide per il provisioning e la pubblicazione di dispositivi iOS nell'App Store .

iTunes Connect

Fare clic su App personali in iTunes Connessione per creare o modificare una voce dell'applicazione iOS. La pagina di panoramica dell'applicazione è illustrata di seguito:

The application overview page

Fare clic su Acquisti in-app per creare o modificare i prodotti in vendita. Questo screenshot mostra l'app di esempio con diversi prodotti già aggiunti:

The sample app with several products already added

Il processo di aggiunta di nuovi prodotti prevede due passaggi:

  1. Scegliere il tipo di prodotto: Choose the product type
  2. Immettere gli attributi del prodotto, inclusi l'ID prodotto, il piano tariffario e le descrizioni localizzate: Entering the products attributes

I campi necessari per ogni prodotto di acquisto in-app sono descritti di seguito:

Nome riferimento

Il nome di riferimento non viene visualizzato agli utenti; è per uso interno e viene visualizzato solo in iTunes Connessione.

Formato ID prodotto

Un identificatore prodotto può contenere solo caratteri alfanumerici (A-Z, a-z,0-9), carattere di sottolineatura (_) e punto (.). Sebbene sia possibile usare qualsiasi stringa per gli identificatori, Apple consiglia il formato DNS inverso. Ad esempio, l'applicazione di esempio usa questo identificatore bundle:

com.xamarin.storekit.testing

Di conseguenza, la convenzione per identificare i prodotti di acquisto in-app sarà la seguente:

com.xamarin.storekit.testing.consume5credits
com.xamarin.storekit.testing.consume10credits
com.xamarin.storekit.testing.sepia
com.xamarin.storekit.testing.greyscale

Questa convenzione di denominazione non viene applicata, ma è sufficiente una raccomandazione per gestire i prodotti. Inoltre, nonostante la stessa convenzione DNS inversa, gli identificatori di prodotto non sono correlati all'identificatore del bundle e non sono necessari per iniziare con la stessa stringa. Sarebbe comunque valido usare identificatori come photo_product_greyscale (anche se Apple non lo consiglia).

L'ID prodotto non viene visualizzato agli utenti, ma viene usato per fare riferimento al prodotto nel codice dell'applicazione.

Tipo di prodotto

Esistono cinque tipi di prodotti di acquisto in-app che è possibile offrire:

  1. Consumabile : le cose che vengono "usate", ad esempio la valuta in gioco che il giocatore può spendere. Se l'utente esegue un backup o un ripristino o ha aggiornato il dispositivo, una transazione di consumo non viene ripristinata anche (che in effetti darebbe al giocatore lo stesso vantaggio di nuovo). Il codice dell'applicazione deve essere sicuro di fornire l'elemento di consumo non appena la transazione viene completata.
  2. Non consumabile : prodotti di proprietà dell'utente una volta acquistati, ad esempio un numero di rivista digitale o un livello di gioco.
  3. Sottoscrizioni auto-rinnovabili: proprio come una sottoscrizione di una rivista reale, alla fine del periodo di abbonamento Apple addebita automaticamente il cliente e estende il periodo di sottoscrizione, per sempre o fino a quando il cliente non lo annulla esplicitamente. Questo è il metodo di pagamento preferito per le app Distodati (in realtà, le app DEVONO supportare questo metodo di pagamento per essere approvate per la distribuzione Di Tipo Intune).
  4. Sottoscrizione gratuita: può essere offerta solo nelle app abilitate per l'uso di Intune e consente al cliente di accedere al contenuto della sottoscrizione in tutti i dispositivi. Le sottoscrizioni gratuite non scadono mai.
  5. Sottoscrizione non rinnovata: deve essere usata per vendere l'accesso limitato al tempo ai contenuti statici, ad esempio l'accesso di un mese a un archivio foto.

Questo documento descrive attualmente solo i primi due tipi di prodotto (Consumabile e Non Consumabile).

Livelli di prezzo

L'App Store non ti consente di scegliere un prezzo arbitrario per i tuoi prodotti: Apple fornisce livelli di prezzo fissi tra cui puoi scegliere. I prezzi sono fissi in ogni valuta e Apple si riserva il diritto di regolare i prezzi relativi (ad esempio, dopo una variazione sostenuta del tasso di cambio relativo tra una determinata valuta e il dollaro statunitense).

Apple fornisce una matrice di prezzi che consente di selezionare il livello corretto per la valuta/prezzo desiderato. Di seguito è riportato un estratto della matrice di prezzo (agosto 2012):

An excerpt of the price matrix August 2012

Al momento della scrittura (giugno 2013) ci sono 87 livelli da USD 0,99 a USD 999,99. La matrice dei prezzi mostra il prezzo che i clienti pagheranno e anche l'importo che riceverai da Apple– questo è meno il loro addebito del 30% e anche le imposte locali che devono raccogliere (si noti nell'esempio che i venditori statunitensi e canadesi ricevono 70c per un prodotto 99c, mentre i venditori australiani ricevono solo 63c a causa di "Beni e servizi fiscali" applicati al prezzo di vendita).

I prezzi del prodotto possono essere aggiornati in qualsiasi momento, incluse le variazioni di prezzo pianificate che hanno effetto su una data futura. Questo screenshot mostra come viene aggiunta una modifica del prezzo datata in futuro: il prezzo viene temporaneamente modificato dal livello 1 al livello 3 solo per il mese di settembre:

A future-dated price change where the price is being temporarily changed from tier 1 to tier 3 for the month of September only

Prodotti gratuiti non supportati

Anche se Apple ha fornito un'opzione di sottoscrizione gratuita speciale per le app DiSostituzioni, non è possibile impostare un prezzo zero (gratuito) per qualsiasi altro tipo di acquisto in-app. Anche se puoi modificare (ad esempio, abbassare) i prezzi per le promozioni di vendita, non puoi effettuare acquisti in-app "gratuiti" tramite iTunes Connessione.

Localizzazione

In iTunes Connessione puoi immettere il testo Nome e Descrizione diversi per qualsiasi numero di lingue supportate. Ogni lingua può essere aggiunta/modificata in tramite un popup:

Each language can be added/edited in via a popup

Quando visualizzi le informazioni sul prodotto nella tua app, il testo localizzato è disponibile per la visualizzazione tramite StoreKit. La visualizzazione della valuta deve essere localizzata anche per visualizzare il simbolo corretto e la formattazione decimale. Questa formattazione viene descritta più avanti nel documento.

Revisione dell'App Store

Come le app: ogni prodotto viene esaminato da Apple prima di essere autorizzato a essere in vendita. I prodotti potrebbero essere rifiutati per contenuti inappropriati nel nome o nella descrizione oppure Apple potrebbe decidere di aver scelto il tipo di prodotto errato (ad esempio, hai creato un libro o un numero di rivista ma hai usato il tipo di prodotto Di consumo). Le recensioni dei prodotti possono richiedere fino a quando una revisione dell'app.

La prima volta che un'app viene inviata con l'acquisto in-app abilitata (sia che si tratti di una nuova app o che la funzionalità sia stata aggiunta a un'app esistente), è necessario scegliere anche alcuni prodotti da inviare con esso. Il portale di iTunes Connessione chiederà di eseguire questa operazione, come illustrato in questo screenshot:

The iTunes Connect portal will prompt you to submit some products as well

L'applicazione e gli acquisti in-app verranno esaminati insieme, in modo che tutti vengano approvati contemporaneamente (in modo che l'app non entri nello Store senza prodotti approvati!).

Dopo aver approvato la prima versione con funzionalità di acquisto in-app, è possibile aggiungere altri prodotti e inviarli per la revisione in qualsiasi momento. È anche possibile scegliere di inviare una nuova versione insieme a specifici prodotti di acquisto in-app, usando la pagina Dettagli versione come suggerisce il prompt.

Per altre informazioni, vedere Le linee guida per la revisione dell'App Store.

Parte 2 - Panoramica del kit store e Retreiving Product Information