2012-06-29 17 views
8

Estoy trabajando en una aplicación de venta de boletos móvil. El sistema permite que los usuarios paguen los artículos usando una API de terceros (CardIO) guardando toda la información en mi servidor que se sienta feliz en la nube.¿Cómo guarda de forma segura un pedido en la nube si no puede verificar el pago desde la nube?

El problema se reduce a: Debido a que (1) el proceso de pago se produce enteramente en el teléfono, y (2) no hay una API que permite que mi servidor para verificar con el procesador de pagos que efectivamente se ha producido el pago , Me pregunto cuál es la mejor manera de verificar que el usuario haya pagado el artículo antes de marcarlo como pagado en mi base de datos en mi servidor.

Como ve, un usuario puede seguir mis llamadas de API manualmente, iniciar sesión en su cuenta y luego enviar el comando a mi servidor para marcar una compra como pagada sin haber pagado el artículo.

Así que la pregunta es: ¿Cómo puedo verificar que el pago ha tenido lugar ya sea en mi servidor, o por medio de algún tipo de apretón de manos o cifrado con la aplicación móvil?

Mi enfoque actual: Estoy enviando la información de texto llano necesaria a través de una llamada SSL (HTTPS) al servidor. Junto con esto, envío un hash de esa cadena y verifico usando el mismo algoritmo en mi servidor que la cadena enviada coincide con el hash enviado. La idea es que podría utilizar algún tipo de clave secreta para generar este hash y luego verificar que el texto plano coincida con el hash en el extremo del servidor para garantizar que nada haya cambiado. Mi problema con esta solución es que no creo que sea tan segura ... Alguien podría descifrar el algoritmo con bastante facilidad, porque se les da el cifrado y el texto sin formato.

¡Gracias por mirar!

Stephen

Respuesta

6

La respuesta corta es que no se puede confiar el cliente, punto Hackear todo lo que quieras, no es forma de generar información de transacción.

Si su procesador de pagos no tiene una API en la que pueda confiar, entonces necesita una mejor ... que resuelva sus problemas de inmediato y para el futuro.

0

El teléfono móvil debe escanear la información de tarjetas de crédito y enviarlo a su servidor, y el servidor debe ser el que al ejecutar el proceso de pago

Cuestiones relacionadas