2010-02-18 9 views
6

Sto creando un semplice negozio online con PHP integrato con PayPal che vende articoli unici. Quello che mi chiedo è come altri negozi si occupano di più persone che tentano di passare attraverso il processo di pagamento con lo stesso articolo.Gestire due persone che acquistano un articolo unico in un negozio online allo stesso tempo

Questo è il mio progetto di strategia di corrente:

  • I prodotti che hanno tre tipi di stato: a disposizione, in attesa & venduto.
  • come un utente si sposta alla pagina di pagamento di PayPal che controlla lo stato di tutti gli elementi presenti nel carrello per assicurare che siano disponibili. Imposta inoltre lo stato dell'articolo su "in attesa" fino a quando non riappare dopo che il pagamento è stato confermato o scade (10 minuti? Non sono sicuro che cosa dovrebbe essere).

Questa pratica standard o c'è un modo più pratico che dovrei fare per questo?

Grazie in anticipo!

+0

Questa è una questione di requisiti aziendali, non di programmazione. – Richard

+9

@Richard Non sono d'accordo, riguarda la concurenza. – Justin

+3

@Richard: soddisfare i requisiti aziendali è una parte piuttosto importante della programmazione, IMO. Sicuramente legati alla programmazione. – Treb

risposta

0

Direi che la prima parte della vostra strategia è corretta - come si sposta alla pagina di pagamento, bandiera tutti i prodotti come 'in attesa'

Quando l'utente ha terminato il pagamento, si otterrà un postback da Paypal che ti consente di sapere se l'autorizzazione ha avuto successo o meno (e probabilmente ti consente anche di controllare il risultato CSC/CVV2) ea quel punto hai la possibilità di accettare il pagamento o di rifiutarlo.

Al ricevimento del postback è necessario controllare anche se gli articoli sono ancora in attesa. Se sono scaduti, puoi rifiutare il pagamento e visualizzare un messaggio "sorry - timeout exceeded" o somesuch.

Questo metodo consente anche di calcolare un periodo di timeout ideale se si tiene traccia della frequenza con cui i clienti eseguono il timeout, quindi è possibile estendere il timeout da (ad esempio) da 5 a 10 minuti se troppi ritardi, o accorciarlo se nessuno sta scadendo.

0

woot.com è noto per questo problema, ma la loro soluzione funziona bene. Dopo aver verificato le informazioni di pagamento, l'utente viene indirizzato a una pagina con una piccola quantità di testo che dice qualcosa come "il tuo ordine è in, stiamo verificando l'inventario".

Sembra che l'API paypal abbia un messaggio "RefundTransaction", quindi qualcosa di simile potrebbe non essere possibile. Ma l'esperienza utente potrebbe essere imbarazzante se vai sul sito web di PayPal e poi torni sul tuo sito.

2

Dai un'occhiata a Dell's UK outlet. Quando qualcuno aggiunge un sistema al proprio carrello, viene trattenuto e non disponibile per altri clienti. Se non viene acquistato, l'articolo viene rimosso dal carrello dopo 15 minuti di inattività ed è quindi disponibile per altri clienti.

0

Questo è molto simile a prenotare biglietti per il teatro o simili online e sì, il modo in cui descrivi è generalmente il modo in cui funziona. Ad un certo punto l'articolo è "riservato" nel sistema e il cliente completa la transazione o l'oggetto viene rilasciato dopo un po 'di tempo per gli altri da acquistare.

Ovviamente a che punto si riserva l'articolo (quando viene aggiunto al carrello, nel punto in cui li si invia per pagare ecc.) Dipende da voi. Mi aspetterei di metterlo nel carrello sarebbe la scelta migliore in quanto rende meno probabile che qualcuno costruisca un cesto di roba solo per scoprire che metà non è più disponibile alla cassa.

0

questo è un problema abbastanza comune con i sistemi di inventario fissi, come sede, trasporti/compagnia aerea tix ecc

Mi piace il modello di compagnia aerea dove una volta si ottiene l'itinerario che si desidera e fare clic su Seleziona, si ottiene una pagina con informazioni sui passeggeri con un messaggio che dice, posti in attesa e ora hai xx (10/15) minuti per completare l'acquisto. Tutto diventa esplicito in quel momento. Per un altro oggetto unico/unico, penso che un messaggio su qualsiasi pagina, su cui l'utente fa clic, dicendo che hai xx (min) rimanenti per completare l'acquisto sarebbe un grande motivatore per gli acquirenti "on the edge" !

Problemi correlati