Una solución sería; enviar un email a quien lo haya comprado, y en ese email habría una URL con un
GET
de unos caracteres random (por ejemplo
www.dominio.do/obtener?token=564sd56dc46d), ese "token" debería estar en la base de datos y se tendría que comparar cuando alguien entre a la URL.
Si el token está asociado al email, automáticamente se descargaría el archivo.
Si no hay una sincronización token-email, simplemente aparece un error.