questa domanda è simile a this one ma con un tocco (così la risposta accettata per la domanda più vecchio non è valido per il seguente scenario)e-commerce gestione del magazzino con il pagamento esterna del gateway
Ho un sito per la vendita di biglietti (PHP/MYSQL). Supponiamo che io sono solo a sinistra un biglietto:
- acquirente A mette il biglietto nel suo carretto e va alla pagina di gateway di pagamento (ad esempio PayPal.)
- il biglietto è bloccato per 5 minuti, quindi acquirente B non può comprare si
- acquirente Un attende 5 minuti con la pagina paypal aperta, non fare nulla
- il biglietto è sbloccato in modo acquirente B mette nel suo carretto e va alla pagina di PayPal
- acquirente a esegue la procedura di pagamento su paypal con successo
- l'acquirente B esegue la procedura di pagamento su paypal con successo
posso aspettare più a lungo, ma non penso che questo risolva il problema nel caso più generale. inoltre, se lo faccio, sarà possibile fare qualche tipo di DoS, bloccando gli articoli in magazzino per lunghi periodi di tempo.
qual è il modo migliore per gestire questo scenario?
questo non risolverà il problema perché, anche se è ovvio, entrambi i pagatori finiscono per fare due pagamenti legali per un articolo. – gpilotino
Sì, hai ragione, non impedirà a uno dei due clienti di acquistare un biglietto nel modo descritto. Potresti anche dire che il primo cliente ha aspettato a lungo. Forse puoi includere la regola dei 5 minuti nella richiesta di Paypal ...? –
in questo caso la domanda diventa: fare (tutti) i timeout di supporto (configurabile) dei gateway di pagamento? anche se, questo risolverà solo il primo tempo =) – gpilotino