17

Implementando l'abbonamento IAP non rinnovo nella mia app in cui eseguo l'implementazione del server per la scadenza di un abbonamento. Sono bloccato quando faccio clic su un abbonamento che ho già acquistato, Viene visualizzata una finestra di dialogo, "Questo acquisto in-app è già stato acquistato. Sarà ripristinato gratuitamente." con il tasto OK. Ho due domande qui:Sottoscrizione non rinnovata Traccia allarme già acquistata

  1. A volte si mostra la finestra di sopra, ma a volte si vede "Tap acquistare rinnovare o estendere esso." dialog. Qualcuno può dirmi qual è la ragione dietro a questo? O è solo un problema di Sandbox. (This screenshot from another thread.)
  2. Quando ottengo "Questo acquisto in-app è già stato acquistato. Sarà ripristinato gratuitamente." Avviso, come posso interrompere l'indicatore di attività? C'è un metodo delegato per tracciare questo?

Non sono riuscito a trovare ma è arrivato qualcosa di nuovo iOS 8?

enter image description here

si

+0

Ho lo stesso problema nella sandbox iOS 8 con tipo di prodotto Consumable. Comprato una volta, non posso comprarlo di nuovo ... anche se è chiaramente affermato che è un materiale di consumo. Strano. –

+0

Ho lo stesso problema in sandbox iOS 8 –

+0

Affrontare anche lo stesso problema in IAP non consumabili. Ma l'app è stata presentata e approvata da ragazzi di iTunes. –

risposta

12
  1. Per un abbonamento non rinnovabile Grazie, la finestra di dialogo corretto è "Tap comprare per rinnovare o estenderlo.". Il motivo è che una volta che un prodotto non consumabile è di proprietà, è di proprietà permanente; da qui il linguaggio "rinnova o estendi".

  2. hai trovato questa finestra di dialogo, perché si sta tentando di acquistare di nuovo lo stesso prodotto prima di completare la transazione sul lato del app . L'App Store ha approvato la transazione e ti ha inviato un ID transazione, ma non hai confermato di aver consegnato il contenuto/accesso promesso. Pertanto, la transazione viene lasciata nello stato approved. La transazione rimane legata all'app fino a quando non la finisci.

Vedere "Finishing the Transaction" in Apple's (confusing, convoluted) documentation.

+0

per la domanda 2, conosco il problema ma come tenere traccia di questa finestra di dialogo, perché l'app potrebbe ancora visualizzare un activityIndicator per mostrare che lo stato è ancora in elaborazione. – zedzhao

+0

Ehi, hai avuto fortuna nel risolvere questo problema, sei in grado di rimuovere l'activityIndicator? –

0

Ho riscontrato questo problema in IAP di consumo e ho chiamato la funzione [[SKPaymentQueue defaultQueue] finishTransaction:transaction]. Poi ho scoperto che si è verificata un'eccezione in una funzione prima della chiamata, quindi scambio la posizione di due funzioni, il problema è risolto ora.

+0

Grazie per la correzione della gramma, amico. – Eanshy

+0

puoi spiegare dove rilevare l'eccezione. – zedzhao

Problemi correlati