Google adopta oficialmente la API de solicitud de pago, lo que le permite pagar con aplicaciones de terceros en Chrome

Una nueva forma de pago finalmente está aquí

La API de solicitud de pago, que se anunciará en la próxima conferencia de desarrolladores de Google I / O, revolucionará la forma en que hacemos pagos en línea en nuestros dispositivos móviles. Los usuarios de Google Chrome en Android ya no tendrán que pasar por largos procesos de pago que implican ingresar la información de su tarjeta de crédito o iniciar sesión en PayPal. En cambio, la API permite a los desarrolladores de sitios web enviar intentos a aplicaciones de pago de terceros compatibles para realizar un pago. A diferencia de muchas de las otras sorpresas que Google nos tiene reservadas, ya hay mucha información pública sobre cómo funcionará exactamente esta nueva forma de pago . Nos hemos sumergido en todos estos documentos para brindarle información antes del anuncio oficial de Google esta semana.


Hacer los pagos más fáciles con la API de solicitud de pago

Primero recapitulemos cómo se manejan actualmente los pagos en los navegadores web. Cuando va a la página de pago de cualquier comerciante en línea, se le solicita que ingrese su información de pago. Puede agregar una tarjeta de crédito admitida por el comerciante o utilizar un servicio integrado como PayPal para completar su transacción. Ahora, a menos que ya haya guardado la información de su tarjeta de crédito en el sitio web (que muchas personas son reacias a hacer) o que ya haya iniciado sesión en PayPal, puede ser una molestia levantarse, ir a su billetera, encontrar su tarjeta, luego ingrese el número de tarjeta, la fecha de vencimiento y el código de seguridad. Cada vez que desee realizar una compra en un nuevo sitio web, debe realizar alguna variación de este proceso. Para aquellos de nosotros que nos gusta buscar ofertas, esto puede ser bastante molesto rápidamente.

Varias páginas de pago de comerciante en línea

Muchas instituciones bancarias y de tarjetas de crédito tienen aplicaciones disponibles en Google Play Store. Como ya estamos usando estas aplicaciones para monitorear nuestras cuentas financieras, ¿por qué no podemos usarlas para autenticar pagos? Ese es exactamente el proceso de pensamiento detrás del Grupo de trabajo de pagos web, compuesto por miembros como Google, Mozilla, Samsung, Alibaba, Microsoft y más. Este grupo ha estado trabajando detrás de escena para introducir una nueva API llamada API de solicitud de pago y un nuevo estándar en línea definido en la Propuesta de manifiesto de pago para facilitar la comunicación entre los navegadores web y los comerciantes en línea para que el comerciante en línea pueda usar aplicaciones existentes en el dispositivo de un usuario final para manejar pagos.

Cómo funciona

Para realizar esta tarea, los navegadores web deben admitir la API de solicitud de pago, los comerciantes en línea deben admitir la API mediante la implementación de lo que se llama un Identificador de método de pago, y las aplicaciones de Android deben implementar nuevos servicios. Sin entrar en demasiados detalles, explicaré brevemente lo que sucede durante el proceso de pago.

Suponiendo que su navegador web admita la API de solicitud de pago (más sobre eso más adelante), cuando navegue a la página de pago de un comerciante en línea, tendrá la opción de pagar con uno de sus manejadores de pago admitidos (tarjeta de crédito / PayPal / etc.) Cuando toque el botón para realizar una compra (como en la página de muestra a continuación utilizada por Googlers para probar la API de solicitud de pago), luego la API de solicitud de pago envía una intención de Android a la aplicación de pago compatible para que esa aplicación autentique al usuario pago.

Digamos que nuestra hipotética aplicación de tarjeta de crédito instalada en un dispositivo Android hipotético se llama Bob Pay. Bob Pay agregará lo siguiente a su archivo AndroidManifest.xml:

 

Cuando se envía un intento dirigido a esta hipotética solicitud de tarjeta de crédito, se inicia el servicio de esta aplicación. Toda la información necesaria para que nuestra hipotética aplicación Bob Pay comprenda lo que se está comprando, a qué proveedor y cuánto dinero está contenido en los extras del intento:

 Bundle extras = new Bundle(); extras.putString("key", "value"); intent.putExtras(extras); 

Una vez que Bob Pay ha validado el pago, la API de solicitud de pago recibe esta información en otro intento enviado por Bob Pay:

 Intent result = new Intent(); Bundle extras = new Bundle(); extras.putString("key", "value"); result.putExtras(extras); setResult(RESULT_OK, result); // Change to RESULT_CANCELED on failure. finish(); // Close the payment activity. 

Pero, ¿cómo sabe el comerciante en línea que admite Bob Pay que el Bob Pay instalado en su teléfono es el verdadero Bob Pay, y no algún malware destinado a cometer fraude? Esto se logra mediante la creación de un archivo JSON de Identificador de manifiesto de método de pago que el navegador puede leer en máquina.

 { " name " : " BobPay - World's Greatest Payment Method ", " description " : " This payment method changes lives ", " short_name " : " BobPay ", " icons " : [{ " src " : " icon/lowres.webp ", " sizes " : " 64x64 ", " type " : " image/webp " }, { " src " : " icon/lowres.png ", " sizes " : " 64x64 " }, { " src " : " icon/hd_hi ", " sizes " : " 128x128 " }], " serviceworker " : { " src " : " payment-sw.js ", " scope " : " /pay ", " use_cache " : false } " related_applications " : [ { " platform " : " play ", " url " : " //play.google.com/store/apps/details?id=com.bobpay ", " fingerprints " : [{ " type " : " sha256_cert ", " value " : " 59:5C:88:65:FF:C4:E8:20:CF:F7:3E:C8... " }], //new " min_version " : " 1 ", // new " id " : " com.example.app1 " }, { " platform " : " itunes ", " url " : " //itunes.apple.com/app/example-app1/id123456789 ", } ] } 

Dentro de este archivo JSON hay una firma que se utiliza para verificar la integridad de la aplicación instalada en su dispositivo que afirma ser el verdadero Bob Pay. Si este cheque de firma falla, Bob Pay no será aceptado como manejador de pagos.

Por supuesto, estoy simplificando enormemente, enormemente, enormemente el proceso general involucrado aquí. Los pagos son un sistema increíblemente complejo que requiere múltiples capas de controles de seguridad para garantizar que solo se realicen pagos válidos. Los tres documentos que vinculé anteriormente describen cómo el navegador implementa completamente la API de solicitud de pago, cómo un sitio web implementa el archivo de manifiesto JSON y cómo una aplicación de Android puede manejar la intención enviada por la API de solicitud de pago. Aquí hay un diagrama de flujo que describe el proceso general que resumí anteriormente:

Diagrama de flujo de pago. Fuente: Rouslan Solomakhin

Como puede ver, hay muchos pasos involucrados aquí. Todos estos cambios serán manejados por desarrolladores de sitios web de comerciantes en línea, aplicaciones de banca / tarjeta de crédito de Android y desarrolladores de navegadores web, por lo que un usuario final probablemente no tenga idea de lo que realmente está sucediendo aquí. Pero sepa que el resultado final es que sus pagos en línea se volverán mucho más simples si todas las partes involucradas implementan estos cambios, lo que, gracias a los esfuerzos de estandarización del Grupo de Trabajo de Pagos Web, se hará realidad.


La historia detrás de la API de solicitud de pago

El Consorcio World Wide Web (abreviado W3C) se fundó en 1994 para desarrollar estándares de plataforma que permitirían a todos los sitios web y sus usuarios beneficiarse de la intercompatibilidad y la coherencia. Para abordar la creciente fragmentación de los pagos web, el W3C formó el Grupo de trabajo de pagos web en 2015 para estandarizar algunos aspectos del flujo de pagos en línea. Posteriormente, el trabajo comenzó entre todos los miembros del Grupo de trabajo de pagos web para encontrar formas de mejorar la forma en que funcionan los sistemas de pago en línea existentes.

El grupo ideó la API de solicitud de pago, una colección de métodos para permitir que los sitios web utilicen métodos de pago sin integrar el método de pago en su sitio. Los navegadores web deben actualizarse para admitir la API, pero la parte más difícil se debe a que los comerciantes en línea están a bordo . Con ese fin, los miembros del Grupo de Trabajo presentaron una propuesta sobre cómo los sitios web pueden crear identificadores para definir qué métodos de pago admiten. Esto implica crear un archivo JSON de Manifiesto de pago que sea legible por máquina (el Identificador del método de pago); debe ser leído por el navegador para que la API de Solicitud de pago pueda identificar si el usuario tiene una o más de las aplicaciones correspondientes a los métodos de pago admitidos identificado en el archivo JSON. Esta implementación está inspirada en el Protocolo de enlaces de activos digitales de Google, que es cómo los sitios web lo redireccionan desde su sitio móvil a su aplicación si ya lo tiene instalado.

Después de muchos cambios internos por parte del grupo, eventualmente el 25 de noviembre de 2016, Zach Koch de Google y Dapeng Liu de Alibaba presentaron un borrador inicial del Manifiesto del método de pago para comenzar el proceso de estandarización de los identificadores de métodos de pago que todos los miembros podrían de acuerdo con. Finalmente, los miembros del Grupo de trabajo se reunieron en persona en Chicago entre el 23 y el 24 de marzo para analizar la API de solicitud de pago, la propuesta de manifiesto de pago y más. El Grupo de Trabajo votó para adoptar formalmente una nueva versión de la Propuesta de manifiesto de pago (versión 2), que es donde estamos hoy.


Soporte para la API de solicitud de pago

El 10 de mayo, el soporte para aplicaciones de pago de Android de terceros ahora está habilitado de forma predeterminada en Chromium ya que el requisito previo del manifiesto de pago web se aprobó en la rama blink-dev (Blink es el nombre del motor de renderizado utilizado por Chrome). Tenga en cuenta que esta característica ha estado en pruebas en Chrome durante meses, pero solo recientemente parece que el grupo está listo para seguir adelante con esto. Esta función se enviará en todas las plataformas / versiones de Chromium, excepto en la Webview de Android (que no tiene una interfaz de usuario y, por lo tanto, no puede implementar la API de solicitud de pago).

Solo después de meses de trabajo detrás de escena, ahora veremos los beneficios de lo que ha estado trabajando el Grupo de trabajo de pagos web. En Google I / O, es probable que la compañía anuncie que Google Chrome se enviará con la API de Solicitud de pago habilitada, y Zach Koch mencionó anteriormente que dará su charla el jueves sobre cómo los proveedores de pagos de terceros pueden apoyar la API mediante la creación del Manifiesto de pago Archivos JSON.

Otros navegadores también están trabajando para agregar soporte para la API de solicitud de pago. Mozilla y Samsung han expresado su apoyo público para agregar la API, aunque según el Googler Rouslan Solomakhin aún no se sabe si el navegador Edge de Microsoft o Safari de Apple agregarán soporte. Debemos tener en cuenta que Microsoft ya está probando la API de solicitud de pago para aplicaciones de la Plataforma universal de Windows (UWP) y al menos un banco ya ha implementado el soporte (Monzo) en su aplicación.

En cuanto a otros comerciantes en línea y aplicaciones de Android que admitirán esta nueva especificación de pago, según Googler Zach Koch:

El número de "proveedores de métodos de pago" que necesitarían implementar esta especificación es bastante pequeño (cientos), y en este momento solo estamos trabajando directamente con un subconjunto muy pequeño de esos (<5) para probar las aguas. Si nos topamos con una situación en la que necesitáramos cambiar uno de los campos, creo que podríamos hacerlo fácilmente y sin mucho (si alguno) riesgo de interoperabilidad. Todos nuestros primeros socios son conscientes de que esta especificación puede cambiar y están de acuerdo con eso.

Lograr esta implementación es fundamental para permitir que otros jugadores participen en el ecosistema de relaciones públicas, al menos en Android. Realmente preferiría no seguir la ruta propietaria completa para habilitar las aplicaciones nativas de Android. Hemos mantenido la huella en este intencionalmente pequeño para dejar espacio para el crecimiento y los casos de uso más avanzados.

Por lo tanto, podemos ver que aunque Google es pionero en el soporte para la API de Solicitud de Pago, tomará algún tiempo antes de que realmente veamos que esta nueva forma de pago llegue a todos los navegadores, a todos los comerciantes en línea y a todas las aplicaciones. Personalmente, estoy muy emocionado de ver que la API de solicitud de pago sea compatible con Google. El ecosistema de comercio electrónico se ha fragmentado innecesariamente con métodos de pago durante años, y si esta nueva API significa que nunca más tendré que ingresar manualmente la información de mi tarjeta de crédito en un sitio web, entonces estoy a favor.


¿Qué opinas de este próximo estándar? ¡Escucha los comentarios y dinos tu opinión!