Utilizzo di SMS come transazione in situazioni offline

3

Attualmente, ho questa applicazione mobile ibrida che comunica con il mio servizio web C # per effettuare transazioni CRUD. Poiché l'applicazione mobile è sempre in movimento e potrebbe non esserci la connettività Internet in tutte le situazioni.

Pertanto, sto pensando di utilizzare le transazioni SMS in modalità offline.

Per accesso:

  1. Usando sms, comunica al server per richiedere il token di accesso.
  2. Token generato e inviato tramite SMS al numero di telefono dell'utente registrato
  3. Utente quindi inserisci l'OTP entro 5 minuti di validità
  4. L'app quindi comunicherà con il server con l'OTP, una volta verificato, l'utente andrà invece in un'interfaccia utente speciale per l'accesso offline.

Per le transazioni:

  1. Il telefono invia un sms al dongle 3G (Session Session, ID utente, tipo di transazione, dettagli transazione)
  2. SMS server ha ricevuto il messaggio sms
  3. Applicazione che gestisce il messaggio sms, memorizza il messaggio ricevuto in una coda di messaggi
  4. L'applicazione eliminerà la coda dei messaggi ed elaborerà prima il messaggio meno recente

Ci sono alcune domande in cui mi piacerebbe avere alcuni suggerimenti in:

  1. Come faccio a mantenere una sessione unica tramite SMS? (Token?)
  2. Come faccio a mantenere la sicurezza? (Come nel messaggio di testo è, naturalmente, illeggibile dagli esseri umani, ma non può essere duplicato e praticabile solo per quella transazione)

Farei tutto quanto sopra con i propri codici / librerie senza utilizzare servizi cloud / web esterni in quanto è più per un progetto di società interna.

Aggiornamento:

Sto pensando di usare i "contatori", dove il mio corpo del messaggio di testo avrebbe un contatore al suo interno.

Ad esempio: Contatore app: 1 contatore server: 0

1.App invia una richiesta di transazione. (Contatore app: 1)

2. Il server decrittografa e controlla il contatore. (Dal 1 > 0, consenti richiesta e incrementa il contatore del server a 1)

In questo caso, anche se vi è un messaggio di testo duplicato inviato dall'utente, il messaggio non verrà elaborato come il contatore è ora 1. (1 > 1 restituirà false).

A prescindere da più utenti che accedono allo stesso account e incasinano i contatori , che cosa dovrei prendere in considerazione?

    
posta Gene 16.12.2015 - 06:29
fonte

1 risposta

3

Wow! È bello leggere il tuo scenario. Hmmm Se posso suggerire, mi associo a 1.) sessione unica tramite token, un token dalla tua app c # con il numero di cellulare su di esso. Per il numero 2.) Sì, è raggiungibile a partire da 1.) controllato il numero di cellulare che ha richiesto la tua app c # che è già taggata con token. Anche se qualcuno ha un token duplicato o altro, hai già taggato il numero di cellulare originale richiesto dall'app.

    
risposta data 16.12.2015 - 10:40
fonte

Leggi altre domande sui tag