Gestire proprietà specifiche del paese come prezzo e valuta

2

Ho un'architettura front-end / back-end, in particolare un'app per Android e un back-end. Voglio che l'utente dell'app possa vedere prezzi e valute diverse a seconda della loro geo-localizzazione. Quindi la mia app per Android ha un meccanismo per sapere in quale nazione si trova l'utente (in base alla geo-localizzazione), quindi interroga il backend utilizzando il paese ISO 3 (GBR) e il backend restituisce un prezzo (ad esempio 5,00). Quindi ho bisogno di ottenere la valuta (£) in base al paese. Il meccanismo di cui sopra non è pulito ed elegante, ma fa il lavoro. Il problema qui è che ogni client (Android, iOS, app Web, ecc.) Deve implementare il meccanismo, mentre sembra più semplice se fosse il back-end a implementarlo una volta.

Possibili soluzioni:

  1. FE invia una query al paese ISO 3, BE restituisce una stringa contenente prezzo e valuta (£ 5,00, 7,50 €), gestendo anche la diversa posizione del simbolo di valuta
  2. FE interroga il BE per latitudine / longitudine, quindi come sopra.

Quali sono i pro / contro qui?

    
posta peval27 30.05.2017 - 14:37
fonte

2 risposte

5

Dal punto di vista tecnico:

Eseguire il quertry del back-end utilizzando longitudine e latitudine (opzione 2) ha il vantaggio di fornire il paese allo stesso modo per ogni piattaforma.

Tuttavia presenta i seguenti inconvenienti:

  • un utente può rifiutarsi di condividere la geolocalizzazione per proteggere la sua privacy . Non otterrai la latitudine e la longitudine. Questo romperà il tuo progetto.
  • ogni volta che un utente rifiuta la geolocalizzazione, sei vincolato alla configurazione del telefono, che sicuramente determinerà il paese utilizzando mezzi meno precisi (ad esempio configurazione del telefono, indirizzo IP, operatore di telecomunicazioni , ecc.). Quindi, se implementi l'opzione 2, dovrai comunque fornire l'opzione 1.
  • questo design non applica privacy per design , perché monitora involontariamente i movimenti dell'utente sul back-end, mentre non è direttamente necessario per fornire il servizio che si intende.
  • le coordinate geospaziali non sono completamente accurate in alcune aree o se sei in tunnel o sotterranei
  • le coordinate geospaziali potrebbero essere irrilevanti se l'utente si trova in un treno o in un piano
  • Inoltre potresti presto preoccuparti anche delle questioni legali: non è per escludere che alcuni paesi possano adottare leggi per limitare il geotracking. Soprattutto se più incidenti come questo aumentano la consapevolezza e le paure.

Quindi, per tutti questi motivi, suggerirei vivamente l'opzione 1 e passare il codice del paese al back-end.

Il punto di vista dell'esperienza utente

L'utilizzo della posizione geografica per decidere argomenti di localizzazione come il numero e il formato della data non sempre dà agli utenti felici. Ecco alcuni argomenti che dovresti prendere in considerazione:

  • Alcuni peope potrebbero consultare il tuo sito mentre sono in viaggio. Potrebbero voler usare la formattazione del loro paese d'origine e non quella con cui non hanno familiarità.
  • Per valuta è anche peggio: è possibile che l'utente desideri vedere i prezzi nella valuta locale del negozio. Oppure potrebbero voler vedere i prezzi nella loro valuta nazionale (perché sono in viaggio d'affari e gestiranno l'ordine quando saranno a casa).
  • Alcuni paesi hanno diverse lingue ufficiali: le minoranze potrebbero arrabbiarsi se si utilizza sistematicamente la lingua più utilizzata. Quindi, per la lingua, è meglio ottenere le preferenze dalle impostazioni del telefono o del browser.

Quindi, se si utilizza un codice paese geolocalizzato, prendere in considerazione comunque le impostazioni di localizzazione dal telefono (lingua, formati). E se utilizzi la valuta locale del paese (soprattutto se la tua app è legata al turismo), dai al tuo utente la possibilità di cambiare la valuta di visualizzazione.

    
risposta data 30.05.2017 - 20:58
fonte
0

Per qualche motivo i tuoi clienti hanno il lusso di decidere quale valuta usare. Sarebbe meglio se la decisione su tali impostazioni sensibili fosse effettuata dal server.

Consenti al tuo server di accettare impostazioni locali, coordinate, selezione utente e qualsiasi altra cosa dal client durante l'inizializzazione della sessione, disinfettarli e restituire la valuta al client come una delle impostazioni della sessione. Il cliente si prenderà cura del rendering.

Permettere al cliente di prendere tale decisione

  • Apre i vettori di attacco tramite lo spoofing della valuta.
  • Rimuove qualsiasi controllo dal processo di selezione della valuta e la capacità di regolarlo rapidamente sul lato server.
  • Impone di non essere ASCIUTTO attuare la selezione della valuta su ciascuna piattaforma separatamente.
  • Richiede un po 'più di traffico e potenza di elaborazione sul lato client.
risposta data 31.05.2017 - 14:42
fonte

Leggi altre domande sui tag