Sto costruendo un sistema di pagamento per alcuni ebook con Reactjs sul frontend, Firebase come hosting e database e funzioni cloud sul lato back-end. I clienti non hanno bisogno di un account per acquistare ebook in modo che non abbiano effettuato l'accesso o non ottengano un account.
A questo punto ho un modulo per il loro nome, cognome e email e un campo nascosto con l'ebook che vogliono acquistare. questo è il primo passo. Dopo aver inviato il modulo, sto verificando se tutto è valido. Quando tutto è valido, voglio inviare i dati al server. Voglio anche controllare i dati (non si sa mai se qualcuno sta cambiando il codice in primo piano). Quando il controllo del server è completo e valido, è necessario effettuare una push al database. A questo punto, viene creata una nuova voce con una chiave univoca. Per tutto il tempo, l'utente si trova su una pagina reindirizzata (qualcosa come www.mydomain.com/addNewCustomerInformation
(per inviare informazioni al mio server) (Nota: l'url è un reindirizzamento da https://us-central1-<projectname>.cloudfunctions.net/addNewCustomerInformation
)) con un'icona di caricamento.
Ora che le informazioni di base sono note e inserite nel database, viene effettuato un altro reindirizzamento per inviare l'utente a una pagina di conferma. Per prima cosa l'utente deve controllare se le informazioni sono corrette, in secondo luogo deve scegliere un'opzione di pagamento (sto usando Stripe). Le opzioni sono Alipay, iDeal, bancontact, bitcoin e carta di credito. Quindi sto avendo un sistema più complesso di esempi che usano solo la carta di credito. Perché ci sono alcuni esempi di carte di credito, andrò avanti per iDeal.
Quando l'utente ha controllato le sue informazioni (Non è con un pulsante di conferma. Puoi modificare le tue informazioni se c'era qualcosa di sbagliato.) e cliccato sul pulsante iDeal una fonte Stripe deve essere fatta e con un reindirizzamento l'utente essere guidato attraverso i passi iDeal. La parte di pagamento funziona già, quindi salterò questa cosa. Dopo il pagamento, l'utente riceve una mail con un link 72h per scaricare l'eBook ordinato. Questo è per motivi di condivisione della sicurezza. Dopo 72 ore il link deve scadere (come posso fare?).
Quindi ecco le mie domande:
1) La parte era che reindirizzavo l'utente a un altro url in modo che io possa fare un post sul mio server (webhooks), lasciarli aspettare con un'icona di caricamento e fare un altro reindirizzamento quando sto recuperando i dati dal server sembra molto sporco per me. Qual è un modo migliore per farlo?
2) Come posso far scadere l'url dopo 72 ore? (quindi, come posso rendere scaduto l'ID univoco presente nel database dopo 72 ore)