Actualmente estoy desarrollando una aplicación iOS que tiene la opción de pagar un pedido (limpieza de ropa) a través del escaneo de la información de la tarjeta de crédito usando la cámara del dispositivo. No puedo usar Apple In-App Purchases (IAP) para esto, porque es un bien físico y no virtual:
11.3 Las aplicaciones que usan IAP para comprar bienes físicos o bienes y servicios utilizados fuera de la aplicación serán rechazadas
Estos pagos son future payments
en la terminología de PayPal, por lo que no puedo cargar la tarjeta del usuario inmediatamente. Desafortunadamente, la versión actual de PayPal Mobile SDK no tiene una opción para usar una tarjeta de crédito para esto:
Cuando integras tu aplicación móvil con PayPal Mobile SDK 2.0, tus clientes pueden dar permiso para que se facturen varias veces en el futuro sin iniciar sesión en su cuenta de PayPal. Los pagos de PayPal ( no tarjetas de crédito ) son compatibles.
Así que implementé el siguiente enfoque: una aplicación escanea la tarjeta del usuario y luego envío el PAN / ccv / nombre de usuario / fecha de vencimiento escaneados a través de HTTPS (SSL) a mi servidor, que, a su vez, los envía directamente a PayPal
a obtener un token OAuth para pagos futuros. No almaceno esta información en cualquier lugar.
En los párrafos 4.1 y 4.2 de la especificación de PCI DSS vi:
"Nunca envíe PAN desprotegidos por tecnologías de mensajería del usuario final "
Pero en mi caso, no es una tecnología de mensajería para el usuario final. PCI DSS dice que si el navegador usa SSL, está bien enviar datos a través de él:
Requisito 4: cifrar la transmisión de datos de titulares de tarjetas a través de redes abiertas y públicas
Como entendí, no hay diferencia en el cliente que uso: navegador o aplicación móvil si cifro mis datos, ¿verdad?
¿Mi pregunta es si este proceso es válido o mi aplicación infringe algunas reglas de PCI DSS?