2016-02-10 21 views
7

Attualmente il mio sito accetta pagamenti tramite PayPal. Io uso lo PHP SDK per l'API REST per gestirlo. Questa è la procedura che prendo per gestire i pagamenti attraverso il mio sito:PayPal Pay API pagamenti diretti

  1. Create a payment con il set intento di "Sale", metodo di pagamento impostato su "paypal" e l'URL di reindirizzamento impostato alla pagina di conferma.
  2. Nella pagina di conferma immagazzino il ritorno IDPagamento e PayerID (dalla stringa di query) da utilizzare nel passaggio 3.
  3. Una volta che l'utente conferma l'ordine che poi execute the payment passando l'IDPagamento e PayerID memorizzato nel passaggio 2.

Questo funziona a meraviglia. Tuttavia, vorrei dare all'utente la possibilità di elaborare il pagamento tramite PayPal (come sopra) o tramite il mio sito (utilizzando i pagamenti diretti PayPal).

Per i pagamenti diretti ho potuto creare correttamente il pagamento impostando l'intento su "Vendita", metodo di pagamento su "credit_card" e passando i dettagli della carta appropriata. Tuttavia non sono sicuro di aver bisogno di eseguire il pagamento in seguito, come faccio sopra o se il pagamento passa automaticamente.

Se devo eseguire il pagamento, come ottengo il pagamento Id e PayerID? Se non ho bisogno di eseguire il pagamento, questo presenta un problema poiché vorrei che l'utente confermasse il pagamento. Potrei spostare il materiale di pagamento creato per eseguirlo solo dopo che l'utente ha confermato l'ordine per i pagamenti diretti, ma non posso convalidare i dettagli della carta dopo che l'utente li ha inseriti. Mi stavo chiedendo se ci fosse un modo migliore per gestire questo?

Apprezzerei se qualcuno potesse contribuire a chiarire questo. Grazie

risposta

1

Avrai solo bisogno di elaborare il primo passo (creare il pagamento) quando si tratta di una carta di credito (dettagliato qui: https://developer.paypal.com/docs/integration/direct/accept-credit-cards/).

Per la vostra altra domanda sui problemi di non essere in grado di avere la conferma dell'utente, ci sono alcune cose che puoi fare:

Dal momento penso auth/capture è più vicino a quello che stai pensando di fare, mi permetta di scavare in là un po 'più. Quello che stai facendo in sostanza è autorizzare i fondi (trattenendoli sulla fonte di pagamento dell'utente) e poi catturarli in un secondo momento. Questa è la stessa premessa di un hotel che mette una trattenuta sulla carta di credito per spese accessorie, e in seguito cancella la sospensione.

È possibile eseguire tutto ciò con l'API REST di PayPal.Ecco le caratteristiche che stai cercando:

Dopo l'autorizzazione, è il punto in cui l'utente può confermare ed è possibile convalidare la scheda. Una volta che tutto è stato approvato, puoi catturarlo.

So che questo non sarà un problema per voi, ma lo menzionerò comunque. Con auth/capture, i fondi autorizzati saranno garantiti per essere solo per 3 giorni (periodo d'onore), ma puoi continuare a provare a catturare i fondi per 29 giorni. Dopo quei 3 giorni però, non c'è una garanzia che i fondi saranno presenti.

Speranza che aiuti

+0

Grazie per chiarire la mia confusione con i pagamenti con carta. Ma pensavo che autorizzare e catturare sarebbe stato per rinviare i pagamenti fino a quando non sei pronto per la spedizione. Penso che sarebbe probabilmente meglio usare il primo metodo e verificare i dettagli della carta (non usando PayPal) e quindi memorizzare le informazioni nella sessione dell'utente. Potrei quindi inviare una richiesta di pagamento standard (intento a "Vendita" e metodo di pagamento a "credit_card"). – nfplee

+1

D'accordo, è quello che farei personalmente. Auth/capture può essere usato per il metodo sopra, ma in realtà non è pensato per questo. –

Problemi correlati