Come verifico se il pagamento di terze parti è riuscito?

2

Sto lavorando a un sito web di elaborazione dei pagamenti che funzionerà come PayPal su molti siti di e-commerce. L'idea è che il cliente riempia il suo carrello della spesa e faccia clic su checkout, quindi venga indirizzato alla pagina di pagamento su un sito sicuro. Dopo che la pagina di pagamento ha elaborato il pagamento, indirizza il cliente al sito web originale. Finora, penso di essere a posto fino al punto di ricevere il pagamento, ma quale meccanismo utilizzano siti come PayPal per consentire al sito web originale di verificare se il pagamento è stato ricevuto con successo?

Il mio processo attuale:

  • Cassa del clic del cliente
  • Archivia gli articoli del carrello come ordine in sospeso nel database
  • Pubblica ID commerciante, importo del pagamento, l'URL di reso, ecc. per garantire la pagina di pagamento. Questo utilizza SSL e ho anche pubblicato un hash degli altri valori pubblicati per assicurarmi che non vengano manomessi durante il transito.
  • Il cliente inserisce le informazioni sulla carta e fa clic su "Paga"
  • Il sito sicuro reindirizza all'URL di ritorno specificato con una stringa di query delle informazioni di transazione pertinenti, compreso un flag che indica il successo o l'insuccesso.

Per l'ultimo passaggio, il sito originale deve essere sicuro che la richiesta provenga dal sito di pagamento in modo che un utente non possa semplicemente accedere a quell'URL, fornendo loro stessi la stringa di query, per completare un ordine. Attualmente ho lo stesso meccanismo di hashing in atto per assicurarmi che le variabili della stringa di query non vengano manomesse. È molto rozzo Appendo le variabili in una stringa lunga e poi aggiungo una chiave segreta condivisa fino alla fine, cancellando l'intera stringa, inviandola. Il destinatario riceve la stessa cosa e confronta gli hash.

    
posta xr280xr 12.12.2013 - 20:16
fonte

1 risposta

3

Firma la stringa della query insieme a un timestamp e un ID transazioni che generi in modo casuale sul tuo back-end con il certificato SSL del tuo sito web.

Dovresti anche pensare al caso in cui un pagamento arriva ma il computer degli utenti perde la connessione a Internet subito dopo.

In questo caso, devi inviare al server del sito web un messaggio firmato sul fatto che la transazione è andata a buon fine.

Fornirei anche un modo per il sito Web di richiedere informazioni su una transazione.

    
risposta data 12.12.2013 - 20:38
fonte

Leggi altre domande sui tag