Separar acceso y aviso
Guarda el permiso de descarga y el correo de aviso como registros distintos. Un evento de pago repetido debe recuperar el acceso existente, no crear otra licencia. Es un patrón propuesto, no una función confirmada de Web3Cart.
Definir una clave estable
Usa una clave única que incluya tienda, línea de pedido y tipo de acceso. Comprueba el pago según la política configurada antes de conceder acceso. La base de datos debe imponer la unicidad: consultar y después insertar no evita carreras entre dos procesos.
Recuperar un fallo
Si falla el correo después de crear el acceso, reintenta el aviso con el mismo registro. Separa ambos estados, evita secretos de descarga en los registros y deriva las referencias contradictorias a revisión.
Probar antes de activar
Repite un evento verificado, envía dos copias simultáneas y simula un fallo de correo. Debe existir un solo acceso. Un evento sin verificar no debe conceder ninguno. Registra los resultados esperados y observados.
