PayPal PayFlow Pro con redirección transparente - Problemas de autenticación de usuarios fallidos / Documentación

Tengo algunas dificultades para integrar y encontrar documentación actual para la integraciónPayPal PayFlow Pro en mi sitio web.

Hay una pregunta similar aquí para PayFlow Link -https://stackoverflow.com/questions/15808604/result-1-respmsg-userauthenticationfailed-in-test-transaction-for-mastercard - Pero quería entrar en los detalles.

Quiero usar elRedireccionamiento transparente característica con elSILENTTRAN Opción para que:

los datos de la tarjeta de crédito se envían directamente a la puerta de enlace (es decir, no a través de mi servidor)el usuario es redirigido nuevamente a una página designada para confirmar la transacción o error (página de respuesta).

Actualmente estoy leyendo este documento:https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/payflowgateway_guide.pdf

Esto se enumera comoGuía del desarrollador de Payflow Gateway (PDF) en esta página -https://developer.paypal.com/webapps/developer/docs/classic/products/payflow-gateway/ - Así que asumo que es la documentación actual.

Según la página 28, el proceso debe ser:

El cliente hace clic en Comprar para comprar mercancía en su sitio web. [HECHO]Solicita un token seguro al pasar un ID de token seguro al servidor de Gateway. En la solicitud, se pasa el par nombre-valor, SILENTTRAN = TRUE. Este par nombre-valor evita que las páginas alojadas se muestren. [HECHO]El servidor de Gateway devuelve el token seguro y su ID de token a su sitio web. [HECHO]Muestra los campos de la tarjeta de crédito al cliente en una página de pago en su sitio web. [HECHO]El cliente ingresa el número de su tarjeta de crédito, la fecha de vencimiento y otros datos confidenciales en los campos de la tarjeta de crédito y hace clic en Enviar. [HECHO] El navegador publica los datos de pago directamente en el servidor de Gateway, evitando su sitio web y facilitando sus requisitos de cumplimiento de PCI. [Problemas aquí]

A continuación se muestra un ejemplo de una solicitud de token seguro para la redirección transparente. He utilizado el marcador de posición en lugar de los datos reales de mi cuenta de PayFlow Pro en vivo (esta cuenta indica 'Payflow SDK / API (acceso completo) en vivo' en el Resumen del servicio de manager.paypal.com), pero utilicé mis credenciales reales de PayPal en el solicitud actual Asimismo, utilicé páginas de acceso público para mis URL de retorno:

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

Realizo la transacción de token utilizando el código del lado del servidor, y puedo ver que estoy obteniendo una respuesta como esta:

RESULT=0&SECURETOKEN=TOKENWASHEREsdsdfjkj&SECURETOKENID=VDUOBDNLSXTLYAAAAAATLSEBLAAAAAAAAAA&RESPMSG=Approved

Así que parece que la cuenta se autentica correctamente aquí. He confirmado en Fiddler que estoy publicando esta solicitud parahttps://payflowpro.paypal.com.

Luego tomo esa respuesta y la coloco en un formulario HTML que se envía a la puerta de enlace, por ejemplo:

    <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>

Tenga en cuenta que usé el mismo ID de token y token que lo que se devolvió en la respuesta del token; estos son marcadores de posición. También utilicé un número de tarjeta de crédito real y otros valores de campo de tarjeta de crédito.

Esto me está enviando ahttps://payflowpro.paypal.com, que simplemente indica la respuesta (en el cuerpo de la página):

RESULTADO = 1 & RESPMSG = Falló la autenticación del usuario

¿No debería esto volverme a mi página de error? ¿O está fallando antes en el proceso para que la puerta de enlace ni siquiera intente interpretar el token y redirigir? He intentado configurar mis URL de retorno a las URL del sitio web en vivo, y no parece estar haciendo una diferencia. También he intentado publicar esto desde un servidor web de acceso público en lugar de localhost, pero el resultado es el mismo.

Otro problema que tengo es encontrar documentación relevante. Hay un documento de 'Pruebas de servicio de flujo de pago' aquí:https://ppmts.custhelp.com/app/answers/detail/a_id/456/kw/payflow%20pro%20transparent%20redirect%20error%20page%20get%20codes

Esta página está fechada en 2007, y el enlace bajo elPruebas usando Payflow Pro El encabezado (es decir, la guía está disponible en x.com) está roto. La guía es un poco vaga, y los únicos ejemplos de código que he encontrado están en PHP (verhttps://go.developer.ebay.com/developers/community/blogs/pp_integrations_nate/payflow-transparent-redirect). He reescrito la lógica en el ejemplo como una aplicación ASP.Net.

En resumen, mis preguntas son:

¿Estoy usando la lógica correcta para procesar una transacción con tarjeta de crédito?Si no es así, ¿puede alguien señalar dónde me equivoco y dónde puedo encontrar la documentación más relevante y actual?Un enlace (s) para los documentos de procedimientos de prueba más actuales

Mi siguiente idea es intentar configurar una cuenta de prueba usando estas instrucciones:https://ppmts.custhelp.com/app/answers/detail/a_id/929/ Obviamente, esto es para las páginas de PayFlow alojadas, pero sospecho que el procedimiento debería ser similar siempre que especifique la opción SILENTTRAN. Intenté sin éxito que la cuenta de prueba funcionara a principios de semana, pero parece ser la próxima cosa lógica que intentar en este momento.

Ya abrí un ticket de soporte con los ingenieros de PayPal y están investigando esto, pero sería bueno saber si alguien en la comunidad ha logrado resolver un problema similar.

EDITAR: según un ingeniero de PayPal, acabo de hablar con elSILENTTRANS el valor solo se requiere en la solicitud de token seguro. He comentado esto en el formulario de solicitud de transacción anterior, pero esto no resolvió el problema. También confirmamos que es posible realizar una solicitud de token no seguro (es decir, redireccionamiento no transparente) parahttps://pilot-payflowpro.paypal.com/ usando los detalles de mi cuenta.

EDITAR 2: PayPal me ha ordenado que use https: //enlace de flujo de pago.paypal.com / (no https: //payflowpro.paypal.com) para la URL de la publicación de la transacción, pero para continuar usandohttps://payflowpro.paypal.com para la solicitud de token. Esto me permite acceder a mi página de confirmación mediante un redireccionamiento transparente (que es un gran resultado), pero no tiene mucho sentido para mí que esté usando el 'enlace de flujo de pago' en lugar del 'flujo de pago'. puerta. También encontré este tutorial que parece apoyar estehttps://go.developer.ebay.com/developers/community/blogs/ppintegrationsnate/new-payflow-gateway-tutorial

¿Puede alguien utilizando el producto transparente PayFlow Pro? Por favor, confirme que esto es correcto (o no).

Respuestas a la pregunta(1)

Su respuesta a la pregunta