Sto sviluppando un sistema di biglietteria online per eventi (come i concerti). Una parte fondamentale è una tabella dei posti in cui ai visitatori verranno presentati i posti disponibili/i biglietti tra cui scegliere. Una volta effettuata una selezione, il sistema tenta immediatamente di prenotare i biglietti per 10 minuti (inserendo gli ID ticket in una tabella in cui l'ID ticket è la chiave). Solo se la prenotazione ha avuto successo, viene presentato un pulsante paypal per effettuare il pagamento.Prenotazione biglietti online con PayPal: impedisce a più visitatori di acquistare lo stesso biglietto
Tutto questo funziona bene. La prenotazione del biglietto non è un problema per me. Posso gestirlo nel mio sistema. Ma una volta che paypal entra in gioco, le cose si fanno difficili.
Il problema: Se l'utente per qualche motivo spende un sacco di tempo in Paypal (più di 10 minuti), la prenotazione di biglietti sul mio sito scadrà, permettendo che i biglietti per essere acquistati da un altro visitatore, che potrebbe accadere prima che il visitatore 1 effettui il pagamento. Il visitatore 1 non vede nulla di tutto questo perché è ancora in paypal ... Ad un certo punto nel tempo, riuscirà a effettuare il pagamento (ad esempio dopo 15 minuti), che funzionerà perfettamente perché paypal non sa nulla di prenotazioni scadute .
Alla fine, potrei avere due visitatori che hanno pagato lo stesso biglietto/posto!
Come posso evitare che ciò accada? Come gestisci le condizioni di gara se due sistemi sono coinvolti e uno di questi è fuori dal tuo controllo?
Il mio pensiero era: in realtà un assegno deve essere effettuato prima del pagamento, ma ovviamente non ho il controllo su ciò che accade in paypal!
So che posso usare l'IPN di Paypal e così via, ma questo succede solo DOPO il pagamento che è troppo tardi.
In alternativa, sarebbe fantastico se PayPal mi chiedesse tramite API di confermare un pagamento. Quindi potrei dire "no" nel caso in cui i biglietti siano stati venduti a qualcun altro. Ma non penso sia possibile con paypal.
grazie. Checkout rapido suona bene e lo cercherò. Riguardo la seconda parte: questa è una caratteristica specifica di paypal? Ho cercato e non ho trovato nulla riguardo all'autorizzazione. – user1595494
No, le autorizzazioni sono piuttosto standard nel settore delle carte di credito. Questa pagina offre una buona approssimazione dei diversi tipi di pagamento offerti da Express Checkout: https://www.x.com/developers/paypal/documentation-tools/express-checkout/integration-guide/ECRelatedAPIOps –