Ho riscontrato un problema con la convalida di una ricevuta Apple sul lato server. Ho provato a trovare una soluzione in internet, ma non ci sono riuscito.Ricevimento acquisti in-app Apple - convalida sul lato server
Quindi, descrizione: Prima di tutto, l'applicazione è fatta per iOS7. In secondo luogo, ho alcuni elementi (tipo = abbonamento non rinnovabile). Quindi l'utente può acquistare uno o più oggetti e quindi dovrebbe rinnovarli manualmente (acquistare di nuovo).
Le applicazioni inviano una ricevuta al lato server, faccio una richiesta all'Apple e ottengo il risultato con un sacco di ricevute in_app. Qualcosa di simile:
"in_app":[
{
"quantity":"1", "product_id":"...", "transaction_id":"...",
"original_transaction_id":"...", "purchase_date":"...",
"purchase_date_ms":"...", "purchase_date_pst":"...",
"original_purchase_date":"...",
"original_purchase_date_ms":"...", "original_purchase_date_pst":"...",
"is_trial_period":"..."},
{
"quantity":"1", "product_id":"...",
"transaction_id":"...","original_transaction_id":"...",
"purchase_date":"...", "purchase_date_ms":"...",
"purchase_date_pst":"...", "original_purchase_date":"...",
"original_purchase_date_ms":"...", "original_purchase_date_pst":"...",
"is_trial_period":"..."}
]
Quindi, ogni "ricevuta" in "in_app" ha transaction_id. Ma come posso identificare il transactionId dell'acquisto corrente? Vorrei anche convalidarlo e assicurarmi che questo sia unico.
La mia preoccupazione è: se qualcuno riceverà una ricevuta valida, sarà in grado di hackerare la nostra API lato server e fare un numero illimitato di acquisti in-app con lo stesso scontrino valido.
Devo in qualche modo decodificare e controllare per transaction_id la ricevuta "originale", quella che invio ad Apple per la verifica?
Qualsiasi aiuto/suggerimento sarebbe molto apprezzato. Grazie in anticipo.
saluti, Maksim
LOL ero solo chiedere lo stesso uomo domanda .. Ho trovato questo accidentalmente e ho visto che ti ha chiesto questo 8 ore fa ... questo solo sux, non ho la più pallida idea anche ciò che a che fare con tutte quelle ricevute ... – Adrian
E voglio fare lo stesso tipo di controllo che volevi fare qui. Spero che qualcuno lo veda e lo risponda! : \ – Adrian
Penso che la chiave sia ottenere l'ID della transazione dell'acquisto corrente sul lato * dell'app * e inviarlo, insieme alla ricevuta, fino al server. È possibile ottenere l'ID della transazione sul lato dell'app dall'oggetto transazione. –