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.