¿Cómo puedes crear un sistema de pago móvil?

Primero, estoy haciendo algunas suposiciones aquí:

  1. Por “sistema de pago móvil”, quiere decir que está interesado en procesar tarjetas de crédito.
  2. Ya ha decidido que no desea utilizar la solución de otra persona (por ejemplo, Paypal, Square, etc.)

En este punto, ha decidido efectivamente que desea implementar el procesamiento de tarjetas de crédito en su aplicación. Hay buenas razones por las que es posible que desee hacer esto, pero primero eche un vistazo a algunas de las soluciones listas para usar.

El enfoque básico es elegir un swiper de hardware (o swipers) que desee admitir, configurar un servidor en un centro de datos compatible con PCI, asociarse con un procesador de pagos y escribir un servidor HTTP regular para conectar todo.

Analicemos eso.

Primero, deberá elegir un proveedor de hardware para proporcionar un accesorio para realmente deslizar tarjetas. Existen varias opciones (utilizamos Magtek), pero querrás asegurarte de probarlas físicamente antes de decidirte por una. Varían considerablemente en cuanto a su robustez y lo fácil que es ejecutar las cartas. Aquellos que se conectan al puerto de accesorios (en lugar de la toma de auriculares) tienden a tener la mejor sensación para ellos.

Los swipers de hardware vendrán con una biblioteca de iOS que compilará en su aplicación. En general, esto vendrá con una API que invocará su código cuando se desliza una tarjeta y le dará cierta información pública (por ejemplo, el nombre del cliente, los últimos 4 dígitos) y un blob cifrado de información confidencial (por ejemplo, la tarjeta real número y CVV).

Luego, querrá establecer una conexión segura (es decir, HTTPS o SSL) a su servidor. Tenga en cuenta que cualquier servidor que reciba esta información estará sujeto a algunas reglas de seguridad (PCI) muy estrictas, y usted * no * querrá que esto se implemente en el mismo hardware que su servidor normal. De hecho, hay empresas de alojamiento especializadas que se centran en servidores PCI de alta seguridad y quejas (he usado FireHost en el pasado y funcionó muy bien).

Su cliente luego (de forma segura) enviará los datos de la tarjeta de crédito a este servidor. Este servidor será responsable de descifrar la carga útil e interactuar con su procesador de pagos. Las tarjetas de crédito son complicadas, por lo que puede contar con pasar un buen rato con la referencia API de su procesador de pagos y aprender mucho sobre los entresijos del procesamiento de tarjetas de crédito.

Una vez que este servidor maneja una solicitud determinada, debe enviar una respuesta al cliente diciéndole cómo fueron las cosas. Con las tarjetas de crédito, existe una gran variedad de posibles estados de error, por lo que será importante que brinde al cliente suficiente información para que el usuario pueda distinguir fácilmente entre las condiciones que se pueden volver a intentar (por ejemplo, tiempo de espera del servidor, CVV incorrecto) fallas permanentes (por ejemplo, cuenta inválida, cuenta sobregirada) y transmitir esa información a sus clientes.

Finalmente, querrás asegurarte * realmente * de que pruebes el infierno de tu solución. Aquí se trata de dinero real, y las cosas van muy mal de maneras que no se hacen evidentes hasta que ha pasado mucho tiempo. En particular, debes:

  • Tenga un comprobante de prueba para el procesador de pagos para que pueda probar todas las diversas condiciones de error. Esto es particularmente importante para asegurarse de que los informes de errores de su cliente funcionen bien.
  • Configure una cuenta bancaria de prueba y escriba un proceso de prueba que rutinariamente mueva dinero a través del sistema y verifique que se muestren las cantidades correctas. Esto lo ayudará a asegurarse de que no está arruinando sus solicitudes al procesador de pagos de alguna manera sutil.
  • Pruebe * todas * las posibles interacciones API de todas las condiciones posibles (p. Ej., ¿Qué sucede si intenta anular un pago después de que se haya capturado? ¿Qué sucede si intenta capturar 2 veces lo que autorizó?)


Si aún no lo he dejado claro … esto es complicado (especialmente pasar una auditoría PCI). Sin embargo, es realmente posible, y es principalmente una cuestión de prestar especial atención a los detalles de los requisitos de PCI, las pruebas y ser más defensivo en su código que para otras aplicaciones.

Hola,

¡Muchas gracias por hacer una pregunta a la que soy capaz de responder!

Acabo de publicar una guía bastante práctica. Cómo hacer pagos seguros en línea en su aplicación: Mind Studios , ¡no se los pierda!

Aparentemente, la consulta, la llamada y la necesidad de seguridad son las más buscadas ahora, ya que los ataques cibernéticos continúan invadiendo nuestra sociedad, haciéndonos perder la paz y causando insomnio.

Es por eso que hay puntos que deben tenerse en cuenta para proteger sus datos, su información y sus fondos, particularmente ellos.

Desafortunadamente, no existe una panacea para el desarrollo de aplicaciones de banca móvil a partir de un fallecimiento de ataque cibernético, pero seguramente hay cosas que aumentan la seguridad de los pagos y las transacciones. En primer lugar, hay 3 tipos de pagos que puede involucrar su proyecto con seguridad para aplicaciones móviles:

  • Entrante
  • Saliente
  • Transacciones en el sistema

Todos estos 3 métodos de cobro de tarifas descritos anteriormente se usan comúnmente en las aplicaciones financieras de todo tipo, junto con las otras características.

Hay algunos consejos sobre cómo hacerlos más seguros.

  1. No almacene los datos financieros del usuario en su sistema.

Lea más sobre por qué su sistema no debería hacer esto y algunas otras sugerencias en nuestra reciente publicación de blog

Cómo hacer pagos seguros en línea en tu aplicación – Mind Studios

More Interesting

¿Qué es la paginación UIPageView en el desarrollo de iOS?

¿Cuánto cuesta hacer una aplicación básica para el iPhone, que implica la integración con sms?

¿Vale la pena aprender Swift con la intención de ganar dinero como desarrollador de iOS?

¿Cuáles son los mejores desarrolladores de aplicaciones para iPhone en Suiza?

Cuando se desarrolla el producto mínimo viable para una aplicación de iPhone, es ideal tener un desarrollador "front-end" que maneje los scripts del lado del cliente (xcode / obj-c) y otro desarrollador "back-end" que maneje los scripts del lado del servidor / ¿base de datos? ¿O es mejor tener un solo desarrollador manejando ambos?

¿Es posible encontrar un desarrollador de aplicaciones para iPhone que esté dispuesto a trabajar por una parte de los ingresos potenciales?

¿Cuánto tiempo le tomaría a uno dominar el lenguaje de programación Swift 4 para el desarrollo de aplicaciones iOS?

Cómo verificar la seguridad en bibliotecas de terceros en iOS

¿Cuál es la diferencia entre Xcode BETA8 y Xcode7?

¿Cuáles son las ventajas de usar Azure en el juego para Android e iOS?

¿Cuáles son las mejores aplicaciones de iOS basadas en voz?

Cómo encontrar un mentor que me ayude a aprender el desarrollo de iOS

Cómo descargar iOS 11

Para una gran experiencia de compra en una aplicación, ¿es mejor poner por adelantado el catálogo de productos y pedirle al usuario que inicie sesión o registre un pedido anónimo durante la fase de pago?

¿Cuánto tiempo debería llevar a un desarrollador móvil experimentado portar una aplicación de iOS a Android?