lets create coupons (you did this),
*1
if you ask the coupon number, ask an email
you send a validation code to that email, if the user click on it you generate a defauld password,
the user could log in with his/her email address, and in the first login needed to choose a user(visible name) and a password,
then the user get his/her account now. Then you disable the email address and coupon number for further register.
Then your login system could check if the user has logged in the system with two or more times at the same time.
*1(you can send coupon number in an email, in this case you register that coupon number with that email address...)