API de Solicitud de Pago
========================

**Contexto seguro:** Esta función está disponible solo en contextos seguros (en-US) (HTTPS), en algunos o todos los navegadores que lo soportan.

El API de solicitud de pago provee una experiencia consistente tanto para comerciantes, como para usuarios. No es una nueva forma de pagar; más bien, es una manera para que los usuarios puedan seleccionar su forma de pago preferida para pagar por cosas, y que esa información esté disponible para el comerciante.

Solicitud de pago conceptos y uso
---------------------------------

Muchos problemas relacionados con el abandono de carros de compras en línea pueden deberse a los formularios de pago, los cuales pueden ser complicados y consumir demasiado tiempo para llenarse y a veces requieren muchos pasos para completarse. El API de Petición de Pago intenta reducir el número de pasos necesarios para completar un pago en línea, potencialmente haciendo a un lado los formularios de pago. Hace el proceso de pago mucho más fácil recordando los datos del usuario, los cuales son entregados al comerciante ojalá sin requerid un formulario HTML.

Ventajas de usar la API de Solicitud de Pago con "basic-card" (pagos basados en cartas):

* **Experiencia de compra rápida**: Los usuarios ingresan sus datos una vez en el navegador y luego ya están listos para pagar por productos y servicios en la web. Ellos ya no tienen que llenar los mismos datos repetidamente a través de los diferetes sitios.
* **Experiencia consistente en todos los sitios (que soporten la API):** Como la hoja de pago es controlada por el navegador, puede adaptar la experiencia al usuario. Esta puede incluir la localización de la UI en el lenguaje preferido del usuario.
* **Accesibilidad**: Como el navegador controla los elementos de entrada de la hoja de pago, puede garantizar una accesibilidad uniforme al teclado y al lector de pantalla en cada sitio web sin necesidad de que los desarrolladores hagan algo. Un navegador web puede incluso ajustar el tamaño de la fuente o el color de contraste de la hoja de pago, haciéndola más confortable para el usuario al momento de realizar el pago.
* **Administración de credenciales**: Los usuarios pueden administrar sus tarjetas de crédito y direcciones de envío directamente en el navegador. Un navegador puede incluso sincronizar estas "credenciales" a través de los dispositivos, haciendo más fácil a los usuarios ir de un computador de escritorio a un dispositivo móvil y de vuelta otra vez para realizar compras.
* **Manejo constante de Errores:** El navegador puede checkear la validez de los números de tarjetas, y puede indicarle al usuario si una tarjeta ha expirado (o si está cerca de hacerlo). El navegador puede automáticamente sugerir que tarjeta usar basado en los patrones de uso anteriores o las restricciones del comerciante (p.e., "sólo aceptamos Visa o Mastercard"), o permitir al usuario definir cual de ellas es su tarjeta favorita o por defecto.

Para solicitar un pago, a página web crea un objeto `PaymentRequest` (en-US) en respuesta a una acción del usuario que inicia el pago, como hacer click en un botón "Comprar". El `PaymentRequest` permite a la página web intercambiar información agente de usuario (user agent) mientras que el usuario provee los datos para completar la transacción.

Puedes encontrar una guía completa en Usando la API de Solicitud de Pago (en-US).

**Nota:** La API solo está disponibledentro de elementos `<iframe>` cross-origin si tienen el atributo `allowpaymentrequest`.

Interfaces
----------

`PaymentAddress` (en-US)

Un objeto que contiene la dirección; usada para facturación y despacho, por ejemplo.

`PaymentRequest` (en-US)

Un objeto que provee la API para crear y administrar la interfaz de pago del user agent's (en-US).

`PaymentRequestEvent` (en-US)

Un evento entregado a un manejador de pagos cuando un `PaymentRequest` (en-US) es realizado.

`PaymentRequestUpdateEvent` (en-US)

Permite que la página web actualice los detalles de la solicitud de pago en respuesta a una acción del usuario.

`PaymentMethodChangeEvent` (en-US)

Representa al usuario cambiando el instrumento de pago (por ejemplo, cambiando de una tarjeta de crédito a una tarjeta de débito).

`PaymentResponse` (en-US)

Objeto devuelto después de que el usuario selecciona un método de pago y aprueba una solicitud de pago.

`MerchantValidationEvent` (en-US)

Representa el navegador que requiere que el comerciante (sitio web) se valide a sí mismo como autorizado para usar un manejador de pagos en particular (por ejemplo, registrado como autorizado para usar Apple Pay).

Diccionarios
------------

`AddressErrors`

Un diccionario que contiene cadenas que proporcionan explicaciones descriptivas de cualquier error en cualquier entrada de `PaymentAddress` (en-US) que tenga errores.

`PayerErrors`

Un diccionario que contiene cadenas que proporcionan explicaciones descriptivas de cualquier error relacionado con los atributos de correo electrónico, teléfono y nombre de `PaymentResponse` (en-US).

`PaymentDetailsUpdate` (en-US)

Un objeto que describe los cambios que deben realizarse en los detalles del pago en caso de que el servidor necesite actualizar la información después de la instanciación de la interfaz de pago, pero antes de que el usuario comience a interactuar con ella.

### Diccionarios relacionados para la especificación Basic Card

`BasicCardChangeDetails`

Un objeto que proporciona información de dirección redactada que se proporciona como `methodDetails` (en-US) en el evento `paymentmethodchange` enviado al `PaymentRequest` (en-US) cuando el usuario cambia la información de pago.

`BasicCardErrors`

Un objeto que proporciona mensajes de error asociados con los campos del objeto `BasicCardResponse` que no son válidos. Esto se usa como el valor de la propiedad `paymentMethod` en el objeto `PaymentValidationErrors` (en-US) enviado al `PaymentRequest` (en-US) cuando ocurre un error.

`BasicCardRequest`

Define una estructura de objeto para contener detalles de la solicitud de pago, como el tipo de tarjeta.

`BasicCardResponse`

Define una estructura de objeto para los detalles de la respuesta de pago, como el número o la fecha de vencimiento de la tarjeta utilizada para realizar el pago y la dirección de facturación.

Especificaciones
----------------

| Specification |
| --- |
| Payment Request API 1.1 # paymentrequest-interface |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Ver también
-----------

* Using the Payment Request API (en-US)
* Payment processing concepts (en-US)
* Introducing the Payment Request API for Apple Pay
* Google Pay API PaymentRequest Tutorial
* W3C Payment Request API FAQ
* Feature Policy directive `payment` (en-US)