El modelo POST de Hosted Payment Session

Este modelo de Hosted Payment Session requiere crear código de integración del lado del servidor para obtener un token de sesión de Mastercard Payment Gateway, para usar el identificador de token de sesión devuelto para crear el formulario que debe mostrar la página de pago y para analizar la respuesta del formulario de Mastercard Payment Gateway.

Consejos y mejores prácticas

Campo "gatewayFormResponse" en la Respuesta de transacción

Hosted Payment Session siempre devuelve el campo "gatewayFormResponse", independientemente de si se incluyó como un campo posterior al formulario. Algunos Marcos web pueden arrojar error o restringir el acceso a este campo en este escenario. Si está usando un Marco web que requiere que los campos posteriores al formulario coincidan con aquellos del formulario presentado originalmente, debe asegurarse de que este campo se incluya en el formulario.

Identificador de sesión como campo oculto

No incluya el identificador de sesión como un campo oculto al crear el formulario de pago. Este campo solo debe incluirse en la URL del formulario. Si desea almacenarlo en otras páginas para fines de referencia, es más adecuado guardarlo en una Sesión HTTP.

Restricción de las longitudes de campo de ingreso del formulario

Restringir las longitudes de campo de ingreso del formulario se considera una buena práctica y ayudará con la mantención de la integridad de los datos. En algunos casos, los datos enviados pueden resultar truncado por Hosted Payment Session si las longitudes de campo no se restringen.

Uso de prefijos en nombres de campo

A los nombres de campo se les puede añadir un prefijo pero deben terminar con nombres de campo reconocidos según se definen en Referencia de campos de formulario. Por ejemplo, "ctl00$MainContent$gatewayCardNumber" es un nombre de campo válido y se tratará exactamente igual que un campo llamado "gatewayCardNumber". Esto es especialmente bueno para integraciones que usan la plataforma .Net.

Sesiones HTTP y cookies

Las Sesiones HTTP (no confundir con sesiones de pago) a menudo se usan para llevar un registro de los datos del pagador, por ejemplo, información del carrito de compras, durante la interacción del pagador con un sitio web.

El enfoque más común para mantener las sesiones es a través del uso de cookies. Tenga presente que si las cookies no se habilitan en el explorador del pagador (o en su servidor web), es posible que además deba admitir la reconfiguración de la URL para mantener la sesión HTTP en una cookie. Consulte la documentación para su marco web elegido para obtener detalles.

Asegurar una administración correcta de conjuntos de caracteres

Para asegurarse de que Hosted Payment Session administra correctamente caracteres codificados con un conjunto de caracteres diferente del ISO-8859-1 predeterminado, deberá especificar un parámetro de consulta "charset" en la URL de formulario. Por ejemplo, para especificar que el formulario enviado está codificado con el conjunto de caracteres UTF-8, la URL de formulario se vería parecida a:

    https://evopaymentsmexico.gateway.mastercard.com/form/<formSessionIdentifier>?charset=UTF-8
    

Esto, además, asegurará que la respuesta esté codificada correctamente. Aquí se pueden encontrar conjuntos de caracteres compatibles.

Exploradores de pagador con JavaScript deshabilitado

Administre exploradores con JavaScript deshabilitado al personalizar la página "Continuar". Cuando un explorador tiene JavaScript deshabilitado, al pagador se le mostrará una página que requiere que haga clic en un botón para ser redirigido de vuelta a su sitio. Los siguientes atributos de esta página se pueden personalizar:

  • El título de la página se puede personalizar/internacionalizar al especificar un valor para el campo "gatewayRedirectDisplayTitle".
  • El texto del botón se puede personalizar/internacionalizar al especificar un valor para el campo "gatewayRedirectDisplayContinueButtonText".
  • El color de fondo se puede personalizar/internacionalizar al especificar un valor para el campo "gatewayRedirectDisplayBackgroundColor".

Se aplicarán valores predeterminados si estos no se proporcionan.

Proteger su sitio con SSL

Aunque no se requiere estrictamente para la integración con la solución de Hosted Payment Session, cuando los detalles del pagador se publican en Hosted Payment Session en SSL, proporciona los siguientes beneficios:

  • Aumenta la confianza del pagador al mostrar el candado del explorador

    SSL
  • Evita que el pagador vea el aviso emergente "Security Warning" (Advertencia de seguridad) al pasar del sitio seguro de Hosted Payment Session a su sitio inseguro. El aviso emergente "Security Warning" (Advertencia de seguridad) le pregunta al pagador si desea continuar con el envío de la información.

Flujo de Información de Hosted Payment Session

A continuación, se ilustra el flujo de pago detallado para el modelo de Hosted Payment Session.

Modelo de integración de Formulario POST de pago hospedado

  1. Usted inicia una llamada de API de Mastercard Payment Gateway a Mastercard Payment Gateway mediante la operación Create Session. Esto crea la sesión, la cual contendrá los detalles de tarjeta del pagador de esta. Consulte Solicite una sesión a través de API.
  2. Mastercard Payment Gateway responde con el identificador de sesión.
  3. Su sitio crea la página de pago que incluye el formulario de pago.
    • El formulario de pago debe incluir los campos admitidos por el Servicio de Hosted Payment Session de Mastercard Payment Gateway que debe capturar de parte del pagador.
    • También puede contener campos adicionales que quizás desee capturar en esta etapa. Por ejemplo, Dirección de envío, Número de comprobante, etc.
    • El estilo del formulario de pago puede adaptarse según usted lo requiera.
    • Consulte Cree un formulario de pago y Referencias de campo de formulario de pago.

  4. El formulario de pago se muestra al pagador, a la espera de los detalles de tarjeta y otra información necesaria.
    Este formulario solo se usa para recopilar los detalles de tarjeta y no para realizar un pago.
  5. El pagador ingresa los detalles de esta y hace clic en el botón “Enviar” de su sitio web, el cual realiza un HTTPS POST en el Servicio de Hosted Payment Session. Debe incrustar el identificador de sesión en el campo de acción de su formulario. Consulte Cree un formulario de pago.
  6. Mastercard Payment Gateway recopila, verifica (mediante verificación básica) y sanea los detalles de tarjeta de crédito y envía el formulario validado/modificado de vuelta al explorador. Los detalles de tarjeta como los datos de número y vencimiento de tarjeta, y CSC/CVV se extraen desde el formulario y se agregan a la sesión.
  7. El formulario validado se publica desde el explorador del pagador a usted al usar la URL de devolución especificada en la solicitud de Formulario de envío. El formulario validado incluye los campos de solicitud y los campos de respuesta del Servicio de Hosted Payment Session de Mastercard Payment Gateway.
    Todo campo específico del negocio que pueda pasar en la solicitud de formulario se devuelve sin ningún procesamiento en la respuesta de formulario.
  8. Su sitio valida los campos específicos del negocio.
  9. Su sitio analiza cualquier error devuelto por el Servicio de Hosted Payment Session de Mastercard Payment Gateway y vuelve a mostrar la página de pago si se encuentra algún error.

    Una vez resueltos todos los errores, puede elegir mostrar más páginas al pagador según su flujo de trabajo comercial o realizar una transacción de almacenamiento o pago al tiempo de recopilar los detalles de tarjeta.

    Antes de realizar la transacción del pago, puede enviar una solicitud de cotización de tasa para Conversión dinámica de moneda (DCC) para recuperar la moneda del pagador y el monto del pedido en esa moneda.
    En esta etapa, también puede autenticar al pagador que usa el Servicio 3-D Secure. Observe que si el pagador acepta la oferta de DCC, entonces debe proporcionar la información de DCC en la solicitud de autenticación.
  10. Realice una llamada de API de Mastercard Payment Gateway para iniciar la transacción de pago o almacenamiento al especificar la cantidad de pago (solo para una transacción de pago) que usa una o más de las siguientes acciones: Autorizar, Pagar, Tokenización. Se pueden proporcionar detalles de tarjeta mediante Diversas fuentes de detalles de tarjeta. Para obtener más información, consulte Realizar una operación con la sesión.
  11. Mastercard Payment Gateway le envía el resultado de la transacción de vuelta. Puede realizar una transacción de Guardado posterior después de un Pago/Autorización antes de que la sesión caduque.

Solución de problemas y preguntas frecuentes

¿Qué debo hacer si el formulario de pago devuelve un error?

El formulario de pago puede devolver diversos tipos de errores. Consulte Administración de Errores.

¿Por qué veo una página de error?

Aparecerá una página de error cuando se intente el envío de un formulario incorrecto. Los siguientes casos provocarán que se visualice una página de error.

  • El método de formulario no es HTTP POST.
  • La URL del formulario no tiene el formato correcto.
  • Se pasa un parámetro de consulta distinto de "charset" en la URL del formulario.
  • Se pasa un conjunto de caracteres incompatible como parámetro de consulta en la URL del formulario.
  • El campo obligatorio "gatewayReturnURL" no se ha suministrado.
  • El campo obligatorio "gatewayReturnURL" no es una URL absoluta.
  • Se usan nombres de campo reservados en el formulario de pago. Actualmente el único nombre de campo reservado es "submit" (distingue entre mayúsculas y minúsculas), el cual no debe configurarse como el atributo name del botón.
  • Se ha enviado un campo reconocido con varios valores. Esto suele ocurrir cuando el campo está definido más de una vez en el formulario.
¿Por qué no puedo tener un campo con el atributo "name" configurado en "submit"?

Tener un campo con el atributo "name" configurado en "submit" evitará que el formulario se redirija de vuelta al sitio mediante la publicación de JavaScript. Esto se debe a que la publicación mediante JavaScript se hizo con la función form.submit(). Entonces, si hay un elemento de formulario llamado "submit", entonces JavaScript hará referencia incorrectamente al campo en lugar de ejecutar la función. Esto es un problema bien conocido de JavaScript que no se puede resolver fácilmente.

¿Qué sucede cuando transmito campos definidos por el negocio en el Formulario de pago?

Los campos definidos por el negocio se devuelven en la respuesta de formulario sin ser procesados ni guardados por Hosted Payment Session.

¿El pagador experimentará un parpadeo o destello en su explorador después de enviar sus detalles de tarjeta?

Esto sucede porque el explorador tiene que representar una página HTML antes de ejecutar JavaScript para publicar de vuelta en su sitio. El parpadeo es la visualización de esta página por un momento increíblemente breve antes de que se ejecute el JavaScript. Para asegurar una experiencia sin problemas para el pagador, se recomienda que los atributos que se pueden personalizar de la página "Continuar" estén configurados en valores que mantengan la apariencia y sensación de su sitio. Consulte Consejos y mejores prácticas para obtener detalles sobre cómo personalizar la página "Continuar". Esto también asegurará que los pagadores que no tienen sus exploradores habilitados con JavaScript encuentren una página "Continuar" coherente con el aspecto de su sitio.

Derechos de autor © 2020 Mastercard