2013-06-03 9 views
5

La nostra applicazione è un'applicazione di una pagina creata usando ExtJs. Per qualsiasi azione dell'utente, la scheda del browser non viene mai ricaricata e tutte le azioni vengono eseguite utilizzando ajax. Un utente può aprire/chiudere più finestre/pannelli ExtJs all'interno della stessa scheda del browser e in questo modo tutto rimane confinato nella stessa scheda del browser.Come integrare il gateway di pagamento in applicazioni create usando framework javascript come ExtJs?

Ora, abbiamo bisogno di integrare il gateway di pagamento nell'applicazione, che comporta il reindirizzamento dell'utente al sito web della banca e il suo ritorno alla nostra applicazione.

Il problema è che quando il browser reindirizza l'utente, quindi tutto il codice javascript dell'applicazione insieme a pannelli e finestre vengono distrutti e quando l'utente torna all'applicazione, la trova diversa da quella che ha lasciato.

Come soluzione a questo, stavamo pensando di utilizzare due seguenti appraoches:

Opzione 1. mantenere lo stato di applicazione - Quando l'utente lascia per il sito web della banca quindi in qualche modo manteniamo lo stato di applicazione - come ad esempio quali finestre sono aperte che contengono i dati, quali variabili hanno quali valori ecc. e quando l'utente ritorna indietro, generiamo per lei lo stesso stato dell'applicazione.

Opzione 2. Avere una finestra del browser pop-up per il pagamento del gateway - Abbiamo intenzione di fornire un pulsante che aprirà una piccola finestra pop-up che trasportano i dettagli della transazione, e in questa finestra pop-up del l'intero processo di pagamento dei pagamenti avverrà avendo cura del reindirizzamento e di tutto.

L'opzione 1 si sta dimostrando molto complicata e complicata poiché non è possibile mantenere lo stato esatto.

Per l'opzione 2, non siamo sicuri se questo è sicuro e possibile?

Qualcuno ha implementato un simile approccio in precedenza. Altrimenti, quali sono le altre opzioni a cui possiamo andare?

Grazie per qualsiasi aiuto in anticipo.

risposta

4

Ho affrontato il problema e l'ho implementato utilizzando websocket/polling nell'applicazione principale mentre una nuova finestra si apre per il pagamento.

Dopo che il pagamento è andato a buon fine verrà notificata l'applicazione principale.

In questo modo, ogni pagamento viene eseguito nella propria sandbox totalmente non associato dall'applicazione principale che rende la manutenzione abbastanza semplice. Tieni presente che il nostro backend crea una nuova sessione per ogni pagamento utilizzando quella esistente.

Penso che non è raro aprire nuove finestre per il pagamento, ecco perché ho deciso di andare a questo.

+0

Grazie per aver condiviso il tuo approccio alla finestra pop-up. È interessante notare che stai utilizzando websocket/polling per la notifica della finestra genitore. In realtà, stiamo pianificando di richiamare una funzione nella finestra padre su scarico/chiusura della finestra secondaria per questa notifica se si sta utilizzando l'approccio pop-up. Hai provato anche questo e trovato qualche problema con esso che ti ha fatto scegliere l'opzione websocket? – netemp

+0

@netemp L'obiettivo era di mantenerli completamente separati dall'inizio. Questo è il motivo per cui mi sono concentrato su questo approccio. Era più una questione di design quindi qualsiasi problema noto. – sra

+1

Grazie per il punto menzionato. Potresti anche condividere che hai affrontato qualche problema con il pop-blocker? Hai lamentato che i popup sono generalmente bloccati dai browser e quindi dovrebbero essere evitati? – netemp

Problemi correlati