2013-10-03 24 views
15

Sto eseguendo il porting di un'applicazione funzionante da iOS precedenti e sto avendo problemi con le nuove ricevute di acquisto in app.Convalida scontrino lato server per prodotti non consumabili in iOS7 e deprecazione transactionReceipt

Il modo in cui lavoriamo ora consiste nel prendere la proprietà transactionReceipt dall'oggetto SKPaymentTransaction e inviarla al server per la convalida.

Da quello che ho potuto raccogliere da altre questioni, sembra che la ricevuta è ora tenuto in un unico luogo, essendo:

[[NSBundle mainBundle] appStoreReceiptURL]; 

ci sono alcune cose che non capisco qui:

  1. C'è ora una ricevuta per tutti i prodotti acquistati?
  2. Se sì, questo file cresce, cresce e cresce?
  3. Se desidero inviare singole ricevute per singoli prodotti al server, come posso?
  4. È l'unico modo per inviare il file completo al server tutto il tempo?

Molto confuso da questo, qualsiasi aiuto sarebbe molto apprezzato.

+0

Ho lo stesso problema di file di ricezione in crescita con numero di acquisti .. Hai trovato alcuna soluzione alternativa ?? –

risposta

18

Da quello che sono stato in grado di raccogliere tramite la documentazione di Apple.

1) C'è una ricevuta per tutti i prodotti acquistati. Per eseguire la validazione lato server, invia l'intera ricevuta al tuo server, che la inoltra ad Apple per la verifica. Vedere questo post sui forum degli sviluppatori Apple (a partire dal commento 13) https://devforums.apple.com/thread/193893?tstart=0

2) I materiali non di consumo rimarranno nella ricevuta per sempre, quindi sì crescerà e crescerà. I materiali di consumo vengono rimossi pigramente dallo scontrino una volta terminati tramite una chiamata per completare Transazione. Vedi https://devforums.apple.com/message/876265#876265

3) Il modo iOS6 di eseguire il ciclo di transazioni aggiornate e l'invio di singole ricevute al server per la convalida sembra in contrasto con il nuovo design di iOS7. Questo post sui Developer forum di Apple si suggerisce "inviare l'intero elenco delle transazioni per il server con la ricevuta. Quando la ricezione è verificato, fornire tutti i prodotti, e finire tutte le transazioni." https://devforums.apple.com/message/897870#897870

4) Sembra proprio che sia così.

Se ritieni la documentazione iOS7 è carente si può sollevare un bug report con Apple

+0

Grazie per aver risposto! – gillyD