Gestione pagamento con paypal e problemi di connessione

martedì 22 luglio 2014 - 10.24
Tag Elenco Tags  C#  |  .NET 4.0

svipla Profilo | Senior Member

Ciao a tutti
sto realizzando un piccolo portale per la prenotazione di camere di hotel.
Ho dubbi su come gestire alcune situazioni:
dopo aver selezionato le camere, prima di passare al pagamento con paypal, salvo la prenotazione e decremento il numero di camere disponibili per la tipologia di camera scelta. Se durante il pagamento con paypal si verifica un errore del tipo connessione che cade, chiusura della pagina, devo rendere disponibili le camere. Come fare questo?
PayPal ha una funzione che in automatico dopo tot minuti controlla se l'operazione è andata a buon fine e in caso contrario richiama una pagina del mio portale(avete un esempio di codice?)? Una soluzione a cui ho pensato è quella di creare un'applicazione che gira sul server e controlla se ci sono prenotazioni non completare, ma c'è un piccolo problema, non credo di poter accere al server e gestire i servizi. Altra soluzione è lanciare una procedura ogni volta che qualcuno accede al portale o al pannello di controllo, ma non mi piace molto.
Ho pensato di decrementare le camere disponibili dopo la conferma di pagamento, ma se poi le camere non sono più disponibili? Non posso bloccare le camere perchè ad ogni tipologia è associata un tot di camere.
Grazie mille

ridaria Profilo | Expert

credo che tu debba decrementare il numero di camere disponibili solo dopo che il pagamento è andato a buon fine.

Pay pall al termine dell'operazione di pagamento restituisce dei valori che ti dicono se l'operazione è andata a buon fine o no.

Tutto qui

Ciao fammi sapere
Riccardo D'Aria

svipla Profilo | Senior Member

Ciao
Non va bene, perchè sei uno paga e nel frattempo le camere non sono più disponibili, sono cavoli :-)

andrestu Profilo | Expert

secondo me questa potrebbe essere un idea di procedura:

1 - prima del redirect a paypal per effettuare il pagamento togli le camere e inserisci in session i dati identificativi delle "camere tolte"
2 - se paypal ti ritorna ok elimini i dati in session
3 - se paypal ti ritorna errore controlli i dati in session, riabiliti le camere e elimini i dati dalla session
4 - aggiungi nell'evento "session_end" un controllo che verifica la presenza di questi dati in session e riabilita le camere in caso siano presenti, in questo modo dovresti essere al sicuro anche in caso l'utente termini la sessione durante il pagamento su paypal

l'aspetto negativo di questa procedura è che hai le camere "bloccate" durante tutta la procedura di pagamento ma questo comunque è anche una sicurezza perchè ti evita di ricevere pagamenti per camere non disponibili

Andrea Restucci - Web Developer

ridaria Profilo | Expert

ok, certo che nel frattempo le camere le devi tenere bloccate, scusa, non ho curato i dettagli.

Flagga la camera, la blocchi, e paga, se va a buon fine confermi il blocco delle camere, altrimenti le sblocchi.

Devi però gestire bene la cosa, perchè se flagga le camere e poi se ne va dal sito devi sbloccarle.

il blocco temporaneo che va dal flag sulla camera al pagamento devi chiaramente farlo sul db, così per chi entra subito dopo il flag questa camera appare prenotata.

c'è un altro problema, se due entrano contemporaneamente sulla stessa pagina trovano le camere libere, uno flagga una camera in un istante ed un altro la stessa camera 2 secondi dopo, devi quindi sempre, ad ogni flag, controllare che non sia già temporanemente bloccata.


Ci sono un pò di cose da tener presente.

Per lo sblocco delle camere bloccate e non prenotate, credo che vada bene l'uso di session-end come ha suggerito andrestu.

Ciao





Riccardo D'Aria

svipla Profilo | Senior Member

Grazie a tutti per i suggerimenti

ridaria Profilo | Expert

ok, chiudi il post, scegliendo la risposto che ti ha soddisfatto.

Ciao
Riccardo D'Aria

sanghino Profilo | Junior Member

Ciao,
mi permetto di fare un intervento anche se la discussione è già chiusa.
Ho visto che hai scelto la soluzione che prevede di gestire il "blocco" della camera in fase di prenotazione e pagamento attraverso Session. Secondo me dati persistenti a db forse in casi come questo sono da preferirsi, specialmente quando si lavora sull'integrazione di servizi esterni che magari richiedono anche qualche minuto per concludere il ciclo di interrogazione.
Secondo me se riesci a disegnare un buon modello dati vedrai che sarà semplice anche gestirlo anche se, devo dire, la gestione delle prenotazioni più nascondere qualche insidia se non si ha molta esperienza in merito (ma questo non lo sai solo tu, non conosco la tua esperienza).

Ciao.


Sanghino
--------------------------
www.extrageek.com

svipla Profilo | Senior Member

Ciao
suggerimenti su come organizzare i dati e gestire il pagamento^
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5