iPhone acquisto in-app: Come posso rilevare le transazioni non finiti utilizzando storekit?

StackOverflow https://stackoverflow.com/questions/1666324

  •  13-09-2019
  •  | 
  •  

Domanda

Sono attuazione acquisto in-app in un'applicazione per iPhone che consente il download di una quantità non trascurabile di dati.

In questo momento, sto cercando di capire se il kit negozio mi può dire se ci sono operazioni in cui l'acquisto è completo, ma che sono stati interrotti dalla chiusura dell'applicazione.

Per quanto ne so l'unico modo per farlo è di aggiungere un osservatore al SKPaymentQueue:

[[SKPaymentQueue defaultQueue] addTransactionObserver:someObject];

e attendere che il defaultQueue chiamare

 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

sul someObject. Gli elementi che si trovano nello stato interrotto sopra mostrate nella matrice transazioni SKPaymentTransactionStatePurchased quando questo metodo è

Il mio primo tentativo di risolvere questo problema è stato quello di aggiungere il mio osservatore e poi chiedere:

[SKPaymentQueue defaultQueue].transactions

e controllare quelli. Questo presunto restituisce un array di transazioni 'in sospeso', ma nella mia esperienza non comprende le operazioni che sono SKPaymentTransactionStatePurchased.

speravo di utilizzare lo storekit per mantenere questo stato e mi piacerebbe tutte le idee. Grazie.

È stato utile?

Soluzione

ho deciso che era impossibile fare questo kit negozio utilizzando solo così ho fatto un piccolo tavolo in SQLite:

create table purchased_products (
  product_identifier text primary key, -- apple store id string
  purchased integer not null           -- 1 if purchased
);

e quando ricevo il callback SKPaymentQueue che indica che un prodotto è stato acquistato aggiungo una riga a questa tabella.

Si sta lavorando bene.

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