Io invece solitamente tengo in sessione tutto il carrello, lo sposto in db solo al momento del completamento dell'ordine. Chiaramente questa è una scelta di natura personale.
Per quanto riguarda la sicurezza... è un discorso mooolto grande, e la tua richiesta è molto vaga.
Come consiglio posso dirti di studiare molto bene i passaggi che portano l'utente dal carrello all'acquisto, e ad immagine ogni possibile imprevisto, specie quelli causati dagli utenti stessi: aggiornamento pagina, tasto torna indietro, cambio di valori nel form o nell'urle...
Controlla oltretutto ad ogni passaggio la validità dei prezzi e delle disponibilità: se un utente impiega un'ora a completare l'acquisto, e nel frattempo qualcuno ha comprato l'ultimo pezzo disponibile dello stesso prodotto, o se il prezzo cambia (in virtù magari di una promozione che si esaurisce) è giusto che l'eccezione venga gestita e la procedura di acquisto bloccata segnalando il problema all'utente.
Per quanto riguarda paypal non mi preoccuperei molto: l'integrazione è semplice e se non fai errori non avria problemi.
Gabriele

Rispondi quotando