2012-02-16 27 views
7

Non riesco a trovare anny documentazioni chiare su questo.
Se si utilizza il pagamento express di PayPal, quando un pagamento è in sospeso, cosa succede dopo?
Paypal ti invia tramite IPN un aggiornamento se gli stati cambiano, hai le opzioni?Pagamento express di PayPal gestione "pagamenti in sospeso" con IPN

diciamo si fa un DoExpressCheckoutPayment (con NVP) e si ottiene questo:

&PAYMENTSTATUS=Pending 
&PENDINGREASON= ECHECK //The payment is pending because it was made by an eCheck that has not yet cleared. 
&REASONCODE=None 

Così avete effettuato il pagamento e si desidera attendere fino alla sua eliminato? Cosa dovresti fare dopo.

Aggiornamento Alcuni (documentazione esterna) Ho trovato solo sugest che potresti usare (IPN?) Per gestire i pagamenti in sospeso.

"Se la risposta di pagamento PendingReason Do Pagamento express è un valore diverso da none o completato, il pagamento è in sospeso. In genere, questo significa che il cliente ha pagato con aneCheck. In tal caso, i fondi sono non è garantito, e non è necessario spedire o consegnare articoli o servizi fino al completamento del pagamento. NOTA:
PayPal ti consiglia di bloccare eCheck come metodo di pagamento se non è possibile gestire i pagamenti in sospeso nello stato .Per scoprire lo stato di un pagamento in sospeso , è possibile:

Invia una transazione di richiesta.

Controllare lo stato utilizzando PayPal Manager. Vedere PayPal Responsabile guida in linea per i dettagli."

La sandbox di PayPal sembra avere la possibilità di controllare i messaggi IPN per il tipo di check-out rapido. L'unica correlazione (se il suo mento da utilizzare in questo modo) tra il DoExpressCheckoutPayment e l'IPN sembra possibile utilizzare il campo "personalizzato" per tenere traccia di uno stato in sospeso. Il txn_id (ipn) non è dato in DoExpressCheckoutPayment (nvp). Qualcuno ha esperienza con questo?

+0

Sto ricevendo PENDINGREASON = mancante – mcr

risposta

13

La transazione L'ID viene sicuramente indicato in DoExpressCheckoutPayment, anche se il PAYMENTSTATUS = In sospeso. Un pagamento in sospeso è ancora una transazione

Quindi sì, verrai avvisato tramite IPN quando la transazione sarà completata. Ciò richiede in genere alcuni giorni lavorativi.
Una volta completato, è possibile correlare la transazione da DoExpressCheckoutPayment all'IPN che si è ricevuto tramite txn_id nell'IPN.

Nota: se si desidera testare un pagamento "In sospeso" nella Sandbox PayPal, è sufficiente andare su https://developer.paypal.com/> Account di prova e fare clic su "Revisione pagamento" per l'account venditore con cui si esegue il test.
Una volta che la verifica dei pagamenti è abilitata su quell'account venditore, qualsiasi transazione ricevuta sarà in stato "In sospeso".
Basta disabilitare la revisione del pagamento per rilasciare successivamente le tranche.

+0

grazie, Questo ha senso, la documentazione di Paypal non è molto chiara su questo. – Rob

+0

Davvero! Esiste una documentazione più dettagliata con informazioni sulla "storia completa" di ExpressCheckout? Ad esempio, come è influenzato da IPN, in quali situazioni potrebbe essere pendente una transazione, cosa può essere tipicamente fatto in tali situazioni, quando si accettano transazioni in sospeso e quando non si accettano, ecc. – xSNRG

1

Una cosa non menzionata qui e non ho trovato altro da confermare .. è che l'API Paypal Express non supporta il passaggio nel NOTIFYURL con il codice. Quindi devi usare il set di url IPN hardcoded nel tuo account paypal. Ciò ovviamente causa problemi poiché è necessario un file di callback comune che possa reindirizzare le singole opzioni di pagamento.

Ad esempio, se si utilizza Paypal Express AND Paypal Advanced. Nessuno di quelli supporta correttamente un notifyurl passato utilizzando il codice. Reclami avanzati di PayPal, ma non sembra funzionare. Quindi deve esserci un file di callback IPN comune che gestisca il reindirizzamento a ciascuno.

A meno che qualcun altro possa confermare un url di notifica di lavoro per la variabile Express Checkout che può essere passata nel codice?

+0

Dovrebbe funzionare se si specifica NOTIFYURL in DoExpressCheckoutPayment. È questo che fai? – jayarjo

+0

Sì, "dovrebbe" ma non lo è. Ho confermato con gli sviluppatori di Zen-Cart un buon motivo ed è per questo che hanno dovuto creare un file ipn "comune" per gestire i richiami degli apis multipli di paypal. Ho scoperto di averlo aggiunto nelle versioni più recenti della loro API Paypal Express come "PAYMENTREQUEST_0_NOTIFYURL" e sembra che finalmente ci lavori .. Ma onestamente Paypal ha così tante API e tutti hanno un sacco di bug quindi di solito viene colpito o perdere su ciò che funziona o no. – Dss

+0

Oh aspetta .. hai detto DoExpress .. Ce l'ho solo in SetExpress .. ok proverò DoExpress – Dss

2

Ho pensato di aggiungere i miei due punti di valore a questo.

Stavo ricevendo uno stato di restituzione in sospeso utilizzando Express Checkout tramite l'SDK dotNet, in base al documento e agli esempi che avrei dovuto ottenere con lo stato 'approvato'.

Non riuscivo a capire perché, ma si è rivelato perché stavo passando attraverso una nuova valuta, nel nostro caso 'GBP'. Ho dovuto accedere come account sandbox del facilitatore e decidere cosa fare con la nuova valuta. Convertirlo o impostare un nuovo saldo nella valuta. Dopo averlo fatto e averlo impostato come azione predefinita, lo stato di reso in sospeso non si verificava più.

speranza che aiuti qualcuno!

Problemi correlati