Sto riscontrando qualche difficoltà nell'integrazione e nella ricerca della documentazione corrente per l'integrazione di PayPal PayFlow Pro nel mio sito Web.PayPal PayFlow Pro con reindirizzamento trasparente - Autenticazione utente Problemi/documentazione non riuscita
C'è una domanda simile qui per PayFlow Link - https://stackoverflow.com/questions/15808604/result-1-respmsg-userauthenticationfailed-in-test-transaction-for-mastercard - ma volevo entrare nello specifico.
voglio usare il Transparent funzione Redirect con l'opzione SILENTTRAN in modo che:
- i dati della carta di credito vengono inviati direttamente al gateway (cioè non attraverso il mio server)
- la l'utente viene reindirizzato a una pagina designata per confermare la transazione o l'errore (pagina di risposta).
Attualmente sto leggendo questo documento: https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/payflowgateway_guide.pdf
Questa è elencato come Guida Payflow Gateway Developer (PDF) in questa pagina - https://developer.paypal.com/webapps/developer/docs/classic/products/payflow-gateway/ - quindi sto supponendo che è la documentazione corrente .
Secondo la pagina 28, il processo dovrebbe essere:
- Il cliente fa clic Buy per l'acquisto di merce sul tuo sito web. [FATTO]
- Si richiede un token sicuro passando un ID token sicuro al server Gateway. Nella richiesta, si passa la coppia nome-valore, SILENTTRAN = TRUE. Questa coppia nome-valore impedisce la visualizzazione delle pagine ospitate. [FATTO]
- Il server Gateway restituisce il token sicuro e l'ID token al sito Web. [FATTO]
- Visualizzi i campi della carta di credito al cliente in una pagina di pagamento sul tuo sito web. [FATTO]
- Il cliente inserisce il numero di carta di credito, la data di scadenza e altri dati sensibili nei campi della carta di credito e fa clic su Invia. [FATTO] Il browser invia i dati di pagamento direttamente al server Gateway, evitando il sito Web e attenuando i requisiti di conformità PCI. [PROBLEMI QUI]
Di seguito è riportato un esempio di richiesta di token sicuro per il reindirizzamento trasparente. Ho usato segnaposto al posto dei miei dettagli effettivi sul conto PayFlow Pro (questo account riporta "SDK Payflow/API (accesso completo) Live" nel riepilogo servizio manager.paypal.com), ma ho utilizzato le mie credenziali reali PayPal nel richiesta effettiva. Allo stesso modo ho usato le pagine accessibili al pubblico per i miei URL di ritorno:
USER=MYUSER&VENDOR=MYUSER&PARTNER=VSA&PWD=MYPASSWORD&BILLTOFIRSTNAME=John&BILLTOLASTNAME=Doe&BILLTOSTREET=123 Fake Street&BILLTOSTREET2=&BILLTOCITY=Sydney&BILLTOZIP=2000&BILLTOPHONENUM=5555555555&[email protected]&BILLTOSTATE=NSW&AMT=0.05&RETURNURL=http://www.example.com&CANCELURL=http://www.example.com&ERRORURL=http://www.example.com&TRXTYPE=A&SILENTTRAN=TRUE&VERBOSITY=HIGH&CREATESECURETOKEN=Y&TENDER=C&SECURETOKENID=VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA
ho eseguire l'operazione di token utilizzando codice lato server, e posso vedere che sto ricevendo una risposta indietro in questo modo:
RESULT=0&SECURETOKEN=TOKENWASHEREsdsdfjkj&SECURETOKENID=VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA&RESPMSG=Approved
Quindi sembra che l'account si autentichi correttamente qui. Ho confermato in Fiddler che sto postando questa richiesta allo https://payflowpro.paypal.com.
Quindi prendo la risposta e la metto in un modulo HTML che rimanda al gateway, ad es.:
<form id="form" action="https://payflowpro.paypal.com" method="post">
<!-- <input name="MODE" class="inpPPField" id="hdn_pp_mode" type="hidden" value="Test"> -->
<input name="SECURETOKEN" class="inpPPField" id="hdn_pp_securetoken" type="hidden" value="TOKENWASHEREsdsdfjkj">
<input name="SECURETOKENID" class="inpPPField" id="hdn_pp_securetokenid" type="hidden" value="VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA">
<input name="CARDNUM" class="inpPPField" id="hdn_pp_CardNum" type="hidden" value="4111111111111111">
<input name="EXPMONTH" class="inpPPField" id="hdn_pp_expMonth" type="hidden" value="11">
<input name="EXPYEAR" class="inpPPField" id="hdn_pp_expYear" type="hidden" value="16">
<input name="CVV2" class="inpPPField" id="hdn_pp_cvv2" type="hidden" value="123">
<!--<input name="SILENTTRANS" class="inpPPField" id="hdn_pp_silenttrans" type="hidden" value="Y">-->
<input name="VERBOSITY" class="inpPPField" id="hdn_pp_verbosity" type="hidden" value="HIGH">
<input class="inpPPField" type="submit" value="Submit" />
</form>
</body>
prega di notare che ho usato lo stesso ID token e token come ciò che è stato restituito nella reponse Token - questi sono i segnaposti. Ho anche utilizzato un numero effettivo di carta di credito e altri valori di campo della carta di credito.
questo mi sta postando https://payflowpro.paypal.com, che ha appena afferma la risposta (nel corpo della pagina):
autenticazione RISULTATO = 1 & RESPMSG = utente non riuscita
Non dovrebbe questo mi sta riportando alla mia pagina di errore? Oppure sta fallendo in precedenza nel processo in modo che il gateway non provi nemmeno a interpretare il token e il reindirizzamento? Ho provato a impostare i miei URL di ritorno in live URL del sito web e non sembra che stia facendo la differenza. Ho anche provato a postare questo da un server web pubblicamente accessibile piuttosto che localhost, ma il risultato è lo stesso.
Un altro problema che sto riscontrando è trovare documentazione pertinente. C'è un 'Payflow Testing Service' documento qui: https://ppmts.custhelp.com/app/answers/detail/a_id/456/kw/payflow%20pro%20transparent%20redirect%20error%20page%20get%20codes
Questa pagina è datato 2007, e il link sotto la Test con Payflow Pro titolo (vale a dire La guida è disponibile presso x.com) è rotto. La guida è un po 'vaga, e gli unici esempi di codice che ho trovato sono in PHP (vedi https://go.developer.ebay.com/developers/community/blogs/pp_integrations_nate/payflow-transparent-redirect). Ho riscritto la logica nell'esempio come un'applicazione ASP.Net.
In sintesi, le mie domande sono:
- Am I utilizzando la logica corretta per elaborare una transazione con carta di credito?
- In caso contrario, è possibile che qualcuno indicare dove sto andando male, e dove posso trovare la documentazione più rilevanti e attuali
- Un link (s) per le più attuali documenti di procedura di prova
Il mio prossimo l'idea è provare a creare un account di prova usando queste istruzioni: https://ppmts.custhelp.com/app/answers/detail/a_id/929/ Ovviamente questo è per le pagine di PayFlow ospitate, ma ho il sospetto che la procedura dovrebbe essere simile purché specifichi l'opzione SILENTTRAN. Ho provato senza successo a far funzionare l'account di prova all'inizio della settimana, ma a questo punto sembra la prossima cosa logica da provare.
Ho già aperto un ticket di supporto aperto con gli ingegneri di PayPal e stanno esaminando questo, ma sarebbe bello sapere se qualcuno nella comunità è riuscito a risolvere un problema simile.
MODIFICA: secondo un ingegnere di PayPal ho appena parlato con il valore SILENTTRANS è richiesto solo nella richiesta di token sicuro. Ho commentato questo nel modulo di richiesta di transazione sopra, ma questo non ha risolto il problema. Abbiamo anche confermato che è possibile eseguire una richiesta di token non sicuro (cioè non-reindirizzamento trasparente) a https://pilot-payflowpro.paypal.com/ utilizzando i dettagli del mio account.
EDIT 2: Sono stato incaricato da PayPal per utilizzare https: // payflowlink .paypal.com/(non https: // payflowpro .paypal.com) per il posto URL transazione, ma di continuare utilizzando https://payflowpro.paypal.com per la richiesta di token. Questo mi permette di passare alla mia pagina di conferma usando un reindirizzamento trasparente (che è un ottimo risultato), ma non ha molto senso per me che sto usando il "payflowlink" piuttosto che il "payflowpro" gateway. Ho anche trovato questo tutorial che sembra supportare questo https://go.developer.ebay.com/developers/community/blogs/ppintegrationsnate/new-payflow-gateway-tutorial
Chiunque utilizzi il prodotto trasparente PayFlow Pro può confermare che questo è corretto (o altrimenti).
NOTA: questa domanda a volte si riferisce a SILIENTTRANS, il parametro corretto è SILENTTRAN – nuander
Aaron, ottieni la soluzione dalla risposta @ Gerzie? Perché, non funziona per me. – Ankur
Sì: il problema era che stavo usando gli endpoint URL errati. Tuttavia, considerando che questo era più di due anni fa, è possibile che le cose siano cambiate. Qual è il problema esatto che stai avendo? –