Domanda

Sto finendo di lavorare su un'app iOS che consente agli utenti di navigare, acquistare e scaricare articoli da una grande libreria multimediale ospitata online in un'applicazione Rails. La biblioteca ha centinaia di articoli acquistabili in questo momento e probabilmente si espanderà molto in futuro.

Inizialmente, avevo intenzione di creare un articolo di acquisto in-app insidioso (su iTunes Connect) per ciascun elemento della libreria. Tuttavia, ho deciso che sarebbe stato un dolore creare tutte quelle centinaia di articoli di acquisto in-app. Inoltre, voglio essere in grado di apportare aggiunte e modifiche agli articoli acquistabili tramite il mio CMS senza dover apportare modifiche a iTunesConnect.

Invece, ora ho l'utente dell'app Creare un account con l'app Rails. Quando vanno ad acquistare un articolo, acquistano prima un articolo di acquisto in-app generico. Una volta completata la transazione, l'app si collega all'app My Rails, registra l'acquisto e scarica il contenuto acquistato.

Una cosa che mi rende nervoso per questo approccio è che l'utente potrebbe effettuare con successo l'acquisto in-app con Apple, ma in qualche modo non riuscire a connettersi correttamente all'app Rails. In tal caso, l'acquisto non verrebbe registrato e il contenuto non verrebbe scaricato, anche se l'utente ha effettuato un pagamento. Inoltre, i metodi di recupero dell'acquisto integrati di Apple non funzionano, perché l'articolo di acquisto è generico. Solo la mia app di Rails ricorderà quali articoli ha acquistato l'utente.

Quindi, aggiungerò molti errori di controllo e recupero statale su tutto l'intero processo. Per assicurarsi che possa recuperare se si imbatte in guai.

Volevo solo metterlo fuori nel caso in cui qualcuno avesse un'opinione o qualche consiglio da condividere.

Grazie!

Charlie

AGGIORNARE

È passato molto tempo ormai, ma ho finito per non usare un acquisto in-app generico. Sembrava un rischio troppo grande. Dopotutto, con i singoli acquisti in-app, Apple tiene traccia degli acquisti e fornisce un modo per ripristinarli. Quindi aveva senso trarne vantaggio piuttosto che costringermi a mantenere il mio database di utenti e i loro acquisti.

È stato un vero dolore nel culo aggiungere tutti coloro che hanno acquistato articoli di app a ITC. L'interfaccia ITC è così orribile. Ho avuto molti problemi. Ma alla fine sono entrati tutti lì, e ora le cose funzionano più o meno senza intoppi.

Quindi, alla fine, direi che anche se è un dolore creare tutti quegli acquisti, ne vale la pena. O meglio dovrebbe valerne la pena. Se la creazione di quel record di acquisto in ITC sembra non vale la pena per ciò che ti aspetti di venderlo, probabilmente hai problemi più grandi con il tuo modello di business!

È stato utile?

Soluzione

Una volta che il messaggio in-app riuscito è tornato da Apple ...

1.I è meglio archiviare il productID in un dizionario ed eliminare ProductID dal dizionario una volta aggiornato correttamente il server.

2. Ignorare qualsiasi evento fino al completamento della transazione.

3. BETTER per tenere traccia delle transazioni, ad esempio, memorizzando le informazioni sulle transazioni (productID, utente, recipt di transazione) sul lato server.

3.Apzionali è possibile fornire un servizio dal sito Web, in modo che l'utente possa spedirti se ha perso i suoi soldi durante l'acquisto dell'app.

Altri suggerimenti

Una cosa che puoi fare, non appena la transazione è completa, è salvare la ricevuta di acquisto localmente (a NSUSERDEFAULS o qualsiasi metodo di persistenza e scarica i tuoi contenuti dal server) puoi sempre riprenderli in seguito.

Se sei ancora preoccupato che questo (cioè salvare la ricevuta di acquisto localmente prima di aggiornare il server) potrebbe fallire per qualche motivo, o anche che l'utente possa eliminare/reinstallare l'app dopo il pagamento e prima di poterlo registrare sul server, Puoi sempre registrare sul tuo server che l'utente ha avviato un acquisto in-app prima di farlo effettivamente, quindi aggiornare il suo stato dopo aver completato/annullato.

A proposito, non lo hai menzionato ma solo per essere al sicuro: stai solo passando la ricevuta di acquisto dal tuo client al server, giusto? Questa è l'unica cosa di cui hai bisogno dalla transazione, come puoi (e dovresti) allora Verifica la ricevuta con Apple e usalo per estrarre tutte le altre informazioni di acquisto (come l'ID prodotto, ecc.).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top