Implementazione personalizzata "Remember Me" con Stripe [chiuso]

6

Implementare ricordami con Stripe, mentre non stai usando il loro Checkout (non supportato su PhoneGap), sembra che stia bene usando il percorso:

Prima volta:

  1. Richiedi token sul lato client utilizzando le informazioni sulla carta.
  2. Crea cliente sul lato server usando il token.
  3. Al momento della conferma, addebita il cliente.

Seconda volta:

  1. Verifica se l'utente corrente è il cliente Stripe richiedendo le informazioni dal nostro server.
  2. Se il cliente è Stripe, mostra "usa la carta di credito sul file" invece del normale modulo CC.
  3. Al momento della conferma, addebita il cliente.

Tuttavia, vi è un elemento di comodità importante mancante - le ultime quattro cifre del numero di carta. La maggior parte dei siti ti informa della carta che stai utilizzando prima di effettuare il pagamento, molto importante nel caso tu debba cambiare le carte.

Ho visto che puoi recuperare gli addebiti che mi consentirebbe di ottenere le ultime quattro cifre. È una cattiva pratica tirarlo e mostrarlo?

Ci sono soluzioni alternative che qualcuno ha in mente?

    
posta Matt 18.08.2014 - 00:56
fonte

1 risposta

3

Ho implementato qualcosa di molto simile a ciò che descrivi. Ogni volta che l'utente desiderava finanziare il proprio account, aveva la possibilità di fornire un numero di carta di credito o, se applicabile, riutilizzare l'ultima carta di credito.

In questa implementazione, ho appena memorizzato le ultime quattro cifre della scheda "predefinita" su Stripe localmente, nella mia tabella di database. Durante la creazione del modulo di iscrizione con carta di credito, il server ha cercato questo valore memorizzato e, se presente, il server ha restituito una casella di controllo al browser, etichettato come "Usa carta di credito XXXX XXXX XXXX 1234". Se l'utente ha selezionato la casella, il mio codice invierà una transazione a Stripe che indica che la scheda predefinita deve essere utilizzata.

Tre fattori mi hanno portato a questo progetto:

1) Volevamo essere in grado di elencare le transazioni di finanziamento (sia riuscite che fallite) per i nostri utenti. Queste schede dovevano mostrare le ultime quattro cifre del numero della carta di credito, per fornire all'utente le necessarie informazioni contestuali su ogni tentativo di finanziamento. Forse avremmo potuto interrogare la transazione Stripe per transazione durante la creazione di questo elenco per l'utente, ma questo sembra un sacco di avanti e indietro. Quindi volevamo davvero memorizzare "ultime quattro cifre" comunque.

2) Memorizzare le ultime 4 cifre della carta di credito non sembrava un grosso rischio per la sicurezza. È consuetudine mostrare le ultime 4 cifre in situazioni meno sicure. Quindi, mentre non volevamo memorizzare i numeri completi delle carte di credito nel database, pensavamo che memorizzare le ultime 4 cifre di alcune carte fosse accettabile.

3) Era semplice. Non era necessario gestire un elenco di numeri di tessera per ciascun utente, ma la stragrande maggioranza dei casi d'uso per qualcosa del genere erano (a mio avviso) comunque indirizzati.

Presumibilmente, se qualcuno ha ricevuto le ultime 4 cifre dal nostro database e quindi ha intercettato il traffico Stripe dal nostro sito, potrebbe avere una sorta di vantaggio sulla decrittografia di questo traffico. Ma questo è un rischio molto più piccolo di quello che sarebbe la memorizzazione di carte di credito reali.

    
risposta data 26.08.2014 - 20:36
fonte

Leggi altre domande sui tag