title: Adding "Promo Code" functionality to my ASP.NET C# website
body: <p>The idea is I'll have a page that will accept a user's promotion code.  When the user clicks "Submit", the code will make a call to the database to ensure that the promo code is indeed valid.  I plan on having a "PromoCode" table in my database which contains a list of available promo codes and a bit variable called something like "HasBeenClaimed".  I'm not all that familiar with encryption/etc. but I would imagine that I would want to <strong>NOT</strong> store the actual clear text promotion code in this table but rather something like an encrypted/hashed/etc. version of it.  So, if someone maliciously gains access to the table's data, they couldn't do anything with this hashed version of the promo code.</p>
  
  <p>Anyways, so functionally, the user submits their promo code and the code does something like takes its hashed value and compares it with what's in the database.  If it matches a record in the database and "HasBeenClaimed" is <code>false</code>, they continue on with the promo.</p>
  
  <p>I am speaking purely pseudocode, and my terminology might not be correct.  But I think you get the basic idea of what I want.  </p>
  
  <p>My promotions are not of high value - they're "Get the first two months half off" (which equates to $25 off each month for two months).  Just FYI, I created a PayPal button that reflects this promotion to be used on the web page that the code will direct to if the promotion code is indeed valid.</p>
  
  <p><strong>QUESTION</strong> I don't know exactly where to start with this nor do I know common best practices when it comes to "Promo Codes".  Please advise on common best practices regarding implementing promo code functionality in an existing ASP.NET website -any advice would be great.</p>