Una de las cuestiones importantes cuando se trabaja con los servicios de un proveedor de IaaS es la conveniencia del pago. Desde el primer día del inicio de nuestro proyecto, tratamos de simplificar el proceso de realizar pagos con tarjetas bancarias y continuar mejorando este mecanismo. Hoy decidimos hablar sobre dónde comenzamos y compartir nuestra experiencia.
/ Flickr / Muhammad Ashiq / CC BY-SAAntecedentes
Hemos
estado proporcionando servicios de IaaS en
1cloud desde 2012. Durante este tiempo, logramos
trabajar con una gran cantidad de pasarelas de pago. Uno de los primeros fue Money Online. Trabajamos con él durante dos años y luego comenzamos a conectar servicios alternativos en caso de posibles dificultades técnicas.
Como alternativa, se consideraron PayPal y Robocassa. Como resultado, ambas plataformas estaban conectadas, aunque
hubo algunas dificultades con
esto . En el primer caso, para importar la identificación del cliente en el formulario de pago, tuvimos que ajustar las reglas CSS y modificar los elementos estándar en la página web. En la situación con Robocassa, varias solicitudes en la API no coincidían con su descripción, pero con la ayuda del soporte técnico, la situación también se resolvió. No nos detuvimos en estas decisiones y consideramos otras opciones que los socios potenciales nos ofrecían.
Entonces, comenzamos a trabajar con el sistema de pago PayMaster (reemplazó a “Money Online”), que nos ofreció condiciones favorables en comisión y una API conveniente. Durante mucho tiempo, esta pasarela de pago actuó como la principal. Sin embargo, recientemente decidimos rediseñar la usabilidad de nuestro servicio y simplificar el proceso de pago de servicios con tarjeta bancaria para particulares. Para que UX cumpla con nuestros requisitos, hemos integrado otra pasarela de pago: CloudPayments.
¿Cómo puedo mejorar el proceso de pago UX?
Estamos trabajando en el modelo de prepago. El cliente repone su cuenta en su cuenta personal y luego los fondos se debitan de esta cuenta a medida que se consumen los servicios de IaaS (se cargan cada diez minutos).
Para reponer el saldo con una tarjeta de crédito, en el caso de PayMaster, el cliente tuvo que pasar por un proceso de cuatro pasos:
- Ingrese el monto del pago en el formulario en el panel de control, haga clic en el botón "Pagar" y vaya a la página de pasarela de pago.
- Indique el teléfono o la dirección de correo electrónico para recibir el cheque y haga clic en Continuar.
- Ingrese los detalles de la tarjeta y presione nuevamente el botón "Pagar".
- Indique el código de confirmación de transacción que el banco envió como parte del procedimiento 3D Secure.
Descargo de responsabilidad: el algoritmo descrito anteriormente se aplica a los pagos con tarjeta bancaria realizados por particulares. Las personas jurídicas pagan los servicios del proveedor de IaaS en las facturas. Mientras mejoramos la usabilidad, finalizamos los mecanismos para la facturación automática de dichas facturas, pero no las consideraremos en el marco de este material, ya que las entidades legales no interactúan con una pasarela de pago.
Decidimos simplificar el proceso de pago para los usuarios y, en general, mejorar la apariencia y la usabilidad de los formularios para completar los datos de la tarjeta bancaria. Para esto, hemos identificado dos tareas para nosotros mismos, que discutiremos a continuación.
Tarea 1: excluir el pasaje a la página de pasarela de pago
Como señalamos anteriormente, cuando un usuario paga por nuestros servicios, para completar los detalles de la tarjeta, se ve obligado a ir al sitio de la pasarela de pago. Por lo tanto, una persona tenía que presionar muchos botones de confirmación y esperar a que se cargaran páginas con información sobre el reabastecimiento de la cuenta.
En este caso, surgió otro problema: después de que el usuario depositó dinero en la cuenta, permaneció en la página de la pasarela de pago hasta que hizo clic en un enlace especial para volver a 1cloud.ru. Esto dificultaba trabajar con nuestro panel de control, por ejemplo, si, después del pago, el usuario deseaba agregar capacidad a su infraestructura de TI.
"Según los análisis, solo unos pocos clientes siguieron el enlace y regresaron a nuestro sitio web", dijo Sergey Belkin , jefe de desarrollo de 1cloud.ru. - Esto se debió en parte al hecho de que el cliente tuvo que hacer clic en el enlace "Volver a la tienda en línea". Esto a pesar del hecho de que nuestro servicio no es una tienda en línea ".
Además, queríamos reducir al mínimo el número de campos rellenados por el usuario, dejando solo aquellos que sean realmente necesarios para la operación. Para llevar a cabo esta tarea, elegimos la pasarela de pago de CloudPayments, cuyos empleados inicialmente atrajeron nuestra atención con respuestas de soporte técnico rápidas y completas.
Además, esta pasarela de pago tenía una oficina de representación en Kazajstán. Esto permitió implementar un nuevo método de pago para nuestro servicio de alojamiento
oblako.kz . De lo contrario, todas nuestras transferencias de Kazajstán a Rusia (o viceversa) estarían sujetas a una comisión adicional.
CloudPayments sugirió usar un
script de chekout especial. Le permite implementar el formulario de pago directamente en nuestro panel de control y transferir los datos completados a la pasarela de pago sin guardarlos de nuestro lado.
Para implementar el script, tuvimos que pasar por un análisis de seguridad
PCI DSS en una de las organizaciones acreditadas, ese era un requisito de CloudPayments. El escaneo es necesario para confirmar el cumplimiento técnico de la norma y para excluir la posibilidad de robo de datos del usuario al completar formularios en el sitio.
La auditoría de cumplimiento de PCI DSS fue realizada por ARinteg. Les enviamos una solicitud en la que indicamos el deseo de someternos a una auditoría, completamos un cuestionario y fijamos una fecha para la verificación. En el lado de ARinteg, la preparación para el escaneo demora aproximadamente medio día (es decir, puede escanear casi de inmediato), pero nos tomó entre cuatro y cinco días adicionales para preparar cuidadosamente nuestra infraestructura.
La exploración duró aproximadamente 15 horas, aunque sucede que la exploración lleva varios días. Los especialistas de ARinteg verificaron SSL y la protección contra solicitudes de inyección y otras vulnerabilidades en nuestro sitio web.
No aprobamos la prueba inicial y nos dieron una lista de problemas que debían solucionarse. Todos ellos eran insignificantes, por ejemplo, había un método posterior que se utilizaba cuando el usuario evaluaba nuestras instrucciones paso a paso en el sitio. Eliminamos todos los comentarios y el segundo intento de auditoría fue exitoso. A continuación, podríamos pasar a la implementación del script chekout.
El script está registrado en nuestro sitio web, recopila datos de la tarjeta del formulario especificado y compone un criptograma a partir de ellos para el pago a través de la API de CloudPayments. Se ve así:
this.createCryptogram = function () { var result = checkout.createCryptogramPacket(); if (result.success) {
El formulario para ingresar los datos de la tarjeta bancaria se ve así:

Durante la implementación de la secuencia de comandos y el formulario, pudimos reducir al mínimo el número de campos rellenados por el usuario. Dejaron solo los que son realmente necesarios para la operación. Por ejemplo, se eliminaron los campos "Nombre" y "Apellido". Como nos explicaron los representantes de la pasarela de pago, los bancos no verifican estos datos (solo el número de tarjeta, la fecha y el CVV son importantes), por lo que decidimos omitirlos y simplificar todo el proceso.
Además, dejamos más clara la información sobre nuestro
programa de descuentos : con una reposición de la cuenta por única vez por un monto de 5 mil rublos, el 10% se acredita en forma de bonos, de 10 000 rublos - 20%, más de 100 000 rublos - 25%. También agregamos la capacidad de guardar datos de mapas para los usuarios. Toda esta información se almacena en el lado de la pasarela de pago de CloudPayments en forma cifrada.
Tarea 2: realizar el pago automático
Este es un pago que ocurre automáticamente bajo alguna condición. Muy a menudo esta característica es utilizada por los servicios de suscripción. Sin embargo, la mayoría de las pasarelas de pago ofrecen solo la opción cuando se produce un reabastecimiento automático en un horario (en una fecha determinada). Es importante para nosotros que la oportunidad de reponer la cuenta esté disponible automáticamente en cualquier momento cuando el cliente se quede sin fondos en la cuenta (ya que trabajamos en prepago). Por lo tanto, para implementar el pago automático, utilizamos el método que se utiliza al pagar desde una tarjeta "recordada" (utilizando un token temporal).
Funciona de la siguiente manera: después del primer pago exitoso realizado por el usuario, la puerta de enlace genera su token para el par de tarjetas de servicio y lo envía en una respuesta de devolución. Este token se guarda y, tras el pago repetido, ya se transfiere, y no los datos de la tarjeta. Resulta que enviamos una solicitud a la puerta de enlace, en la que indicamos nuestra clave API (identificador de que la solicitud proviene de 1cloud), token y cantidad. La puerta de enlace comprueba si se creó tal token y, si todo está en orden, procesa el pago por el importe especificado.
La fecha en que es necesario realizar un pago automático, la calculamos dinámicamente en función del consumo actual de servicios por parte del usuario y el saldo en la cuenta. Supongamos que un cliente tiene mil rublos en el balance general y consumió dos rublos en el último intervalo de diez minutos. Está claro que la fecha aproximada de puesta a cero vendrá en quinientos intervalos de diez minutos, esto es aproximadamente 34 días. Por lo tanto, podemos hacer un pago automático unos días antes del final de los fondos. El cliente elige el tamaño del pago automático de forma independiente.
Que sigue
Ahora estamos probando estas soluciones y evaluando los resultados de la implementación. Según una votación entre los clientes, la mayoría son bastante cambiantes. Estudiaremos más profundamente los comentarios sobre el sistema, analizaremos los datos y, si es necesario, realizaremos ajustes.
PD Materiales frescos de nuestro blog corporativo: