Pagos con tarjeta de forma segura con Stripe Checkout

Gonzalo Galdámez
Nov 28, 2019 · 5 min read

Aceptar pagos con tarjeta en nuestra aplicación no es un tema menor. Nuestros clientes ingresan datos sensibles y debemos garantizar que dichos datos no terminen en manos indeseadas, además de que debemos asegurarnos de que el pago nos llegue a nuestra cuenta.

Por suerte para nosotros, Stripe Checkout nos ofrece una solución simple y segura, que va un paso más allá: no sólo facilita los cobros sino que también asegura que los datos de la tarjeta no puedan ser vistos por nadie más que el usuario que los ingresó. Sí, ni siquiera podrán ser vistos por nuestra aplicación que es la encargada de realizar el cobro.

Te estarás preguntando entonces, ¿cómo puedo realizar un cobro sobre una tarjeta de crédito si no tengo los datos de la tarjeta? Pues veamos cómo funciona.

Para poder aceptar pagos con tarjeta, hay que realizar dos pasos:

  • una acción del lado del cliente. Es decir, en el navegador que usa el usuario para acceder a nuestro sistema.
  • una acción del lado del servidor. Es decir, en el lugar donde corre nuestra aplicación.

Recolectando información sensible desde el navegador del cliente

Para poder utilizar Checkout, debemos agregar unas pocas líneas de código en nuestra aplicación o sitio web. Estas líneas corresponden a un formulario de pago, donde nuestro cliente ingresará los datos de su tarjeta y realizará el pago.

Ejemplo del formulario que vería nuestro cliente (imagen obtenida desde Stripe)

Estas líneas de código son provistas por el propio Stripe, quien se encarga de recolectar los datos de la tarjeta y enviarlos directamente hacia sus servidores, sin pasar por nuestra aplicación. Esto último es fundamental, pues es lo que garantiza que, ni nuestra aplicación ni nosotros ni nadie más que Stripe, pueda acceder a dichos datos que son sensibles.

A este proceso se lo conoce como tokenización y a la clave que nos retorna Stripe se la conoce como token. Pero, ¿cómo funciona este token?

Para explicarlo, usaremos como ejemplo nuestras huellas dactilares. Cuando alguien nace, debe inscribirse en el Registro Civil, donde se le exigirán un conjunto de datos personales, le asignarán un número de identificación personal y le tomarán las huellas dactilares. Así, el gobierno está guardando un información nuestra que podrá ser recuperada a través de una clave: la huella dactilar. Desde ese momento, cada vez que ingresemos nuestra huella -por ejemplo, al atravesar migraciones en un aeropuerto- nuestros datos personales podrán ser recuperados sin necesidad de que tengamos que indicar toda nuestra información.

Eso tiene dos ventajas:

  • En primer lugar, con la información de nuestro pulgar, el gobierno se asegura, a través de una forma rápida y sencilla, de que somos nosotros, ya que cada huella es única.
  • En segundo lugar, no debemos estar acarreando nuestra partida de nacimiento por todo el planeta ya que, a través de la huella, el/la oficial de migraciones puede acceder a nuestros datos.

Pues la misma lógica sigue el token que nos devuelve Stripe. La plataforma de pagos guarda los datos de la tarjeta en sus bases de datos bajo estrictos estándares de seguridad y nos proporciona una clave para poder acceder a dichos datos. Así, Stripe actúa de forma similar a como el gobierno actúa con nuestra huella:

  • En primer lugar, con el token, Stripe garantiza que la tarjeta es válida. Recordemos que cuando se genera dicho token, Stripe obtiene los datos de la tarjeta de crédito y realiza un proceso de validación, para asegurar que la tarjeta existe y su información es fidedigna.
  • En segundo lugar, nuestra aplicación no tiene que “conocer” los datos de la tarjeta del usuario ni exponerlos ante cada transacción que se necesite realizar. Así, evitamos que los datos de la tarjeta puedan caer en manos indeseadas y nos evitamos tener que andar guardando información sensible en nuestra base de datos. Stripe, por su parte, puede obtener los datos originales de la tarjeta a partir del token para poder efectuar los cobros.

Creando el pago con la tarjeta del cliente desde nuestro servidor

Utilizando el token que nos retorna Stripe, nuestra aplicación se encargará de realizar un llamado a la API de Stripe, para procesar el pago de nuestro cliente por el monto que corresponda.
Como dijimos, en vez de trabajar con datos sensibles, nuestra aplicación sólo se limita a decirle a Stripe algo como:

Oye Stripe, a la tarjeta cuyo token es XYZ, cóbrale 10 dólares.

Así, si el token existe y es correcto, Stripe procederá a realizar el cobro sobre la tarjeta.

De cualquier modo, aceptar pagos con tarjeta en nuestra aplicación utilizando Stripe es un proceso sencillo y, sobre todo, seguro. Gracias a la infraestructura y a las estrictas medidas de seguridad adoptadas por Stripe, los datos de la tarjeta estarán guardados de forma segura y nosotros podemos enfocarnos en lo importante de nuestro negocio, que es procesar los pagos de nuestros usuarios. Además, al utilizar las herramientas de Stripe garantizamos el cumplimiento de las Normas de Seguridad de la PCI.

Como vemos, esta es una versión resumida del proceso de pagos con Stripe, para ayudar al lector a conocer más sobre las opciones que ofrece Stripe. Hay muchas más opciones disponibles: desde ofrecer otros métodos de pago y personalizar el formulario de cobro, hasta soluciones pensadas exclusivamente para dispositivos móviles y/o suscripciones recurrentes. En cualquier caso, habrá que evaluar exactamente las necesidades puntuales para elegir la mejor alternativa.

¿Conocías Stripe Checkout o utilizas alguna otra solución? Nos encantaría escucharte.

Si tienes alguna duda, sugerencia o crítica, no dudes en dejar un comentario o contactarnos a info@unagi.com.ar. Y si te gustó el artículo, puedes dar click en el ícono de aplauso que está más abajo.


Unagi (unagi.com.ar) es una empresa de software enfocada en el desarrollo de soluciones web que ayuden a nuestros clientes a mejorar lo que ya hacen bien. Nos especializamos en Stripe, pero no nos limitamos a eso. Nuestro equipo está formado por un grupo de ingenieros, licenciados, diseñadores y expertos en experiencia de usuario, con más de 10 años de experiencia acumulada. Somos felices haciendo lo que hacemos y disfrutamos mucho de compartir experiencias con nuestros clientes.

The Stripe name and logos are trademarks or service marks of Stripe, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners.

unagi

Desarrollos de software a medida para clientes felices

Gonzalo Galdámez

Written by

Co-founder Unagi

unagi

unagi

Desarrollos de software a medida para clientes felices

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade