Haber primero, algo que te puede orientar la forma de trabajar y de implementar un Sistema de Descarga, es el siguiente Articulo
Sistema de Descarga
Ya que tiene la idea de como implementar un Sistema de Descarga, ahora debemos implementarlos con tus necesidades, como tu comentas, lo ideal esque la descarga este habilitada despues que el sujeto efectue la Compra.
Lo que yo haria, seria crear otra tabla llamda
compras_efectuadas , la cual contiene los siguientes campos importantes, el
id de la compra (int autoincrementable),
id_producto (el id al producto al cual se puede acceder),
id_user o
nombre_user y
fecha int (yo trabajo mejor con timestamp).
Entonces al realizar el Pago, tu simplemente debemos agregar un nuevo registro a la tabla compras_efectuadas, con los datos necesarios, es decir el id_producto ( lo que compro el usuario), id_user o nombre del usuario y finalmente el timestamp de la compra.
Luego en la tabla uploads deberias agregar la columna caduda, donde podemos indicar el tiempo de caducacion de los archivos a descarga una vez que se ha ejecutado la compra (259200 segundos = 72 horas ejemplo).
Entonces finalmente, luego que el usuario pago, y tu agregaste tu compra a la tabla compras_efectuada, le mandas la URL del archivo ejemplp
http://sitio.com/descargas/download.php?id=523 donde ese id 523 corresponde al Archivo a Descargar, pero primero debes consultas a la tabla compras_efectuadas si el Usuario , tiene acceso a la id 523 , es decir si realizo la compra, si existe el registro y el tiempo no ha caducado (hora actual - 259200) continuas la descargas del Archivo.
Bueno mi amigo, te he orientado un poco mas sobre el asunto para que avanzes con tu proyecto.
Saludos