ciao,
per fare quello che chiedi, per me, hai sbagliato approccio: ti serve una pagina dinamica dove l'utente accede tramite autenticazione (nel caso potrebbe bastare il "numero di copia" del prg ma è un po' poco)
a questo punto controlli su database l'esistenza del "numero di copia", verifichi se è già stata generata e fornita un'attivazione e a chi è stata data, quando, ecc ecc....
inoltre non mi affiderei a JS per generare codici di questo tipo, farei tutto lato server.
lavorando lato server, registri anche i pagamenti e puoi salvare tante altre informazioni... oltre a rendere tutto l'insieme più sicuro e gestibile