Autorizzazione di un'app Android per eseguire operazioni sul server di backend

0

Gli utenti della mia applicazione Android possono pagare (utilizzando Paypal o fatturazione in-app) per accendere un LED in una posizione remota. I LED sono controllati, in ciascuna posizione, da Arduinos collegati a Internet.

Quando un utente paga, l'app invia una richiesta al server, che contiene l'importo pagato. Il server a sua volta è responsabile dell'invio di una richiesta POST alla destra Arduino.

Poiché chiunque può decompilare l'applicazione e capire come fare una richiesta al server con una quantità arbitraria di denaro pagata, come può essere garantito questo scambio?

  • L'autorizzazione dell'utente e della password (con valori memorizzati) non funzionerà, perché l'utente e la password possono essere estratti dall'app
  • L'incorporamento di un file chiave non funzionerà a causa dello stesso motivo
  • L'autorizzazione basata sugli account Google non funzionerà perché devo autorizzare l'applicazione, non l'utente (cioè, l'utente può semplicemente utilizzare tali credenziali per effettuare una richiesta arbitraria all'esterno dell'app, che non è auspicabile)

Ho pensato di sfruttare la "conferma di pagamento" dai fornitori di servizi di pagamento per garantire che un pagamento sia fatto, ma questo pagamento è effettuato in-app, quindi non so se può essere sicuro. Dovrei usare un "URL di ritorno" in modo che Paypal (per esempio) effettui la richiesta al server?

Grazie.

    
posta JoelSanchez 06.07.2016 - 09:17
fonte

1 risposta

0

Elabora o verifica il pagamento sul lato server. Questo funziona per paypal e il tuo server può vedere gli acquisti in-app di un'app autorizzata e di un utente specifico. Basta esaminare la documentazione su PayPal, Google Play e.t.c

    
risposta data 06.07.2016 - 12:30
fonte