Kai Backman
07-28-2004, 09:25 AM
(Thread migrated from Dexterity.com. StAn asked for how to create the full download system).
In my system all customers have a running single database ID that I use to identify them internally. After the order completes their information gets filled into the database (email etc). The server then sends them a link containing an unique 64 characterd md5 "key" that is just randomly generated. There is one table in the database to connect these sums to the internal customer ID. When the customer clicks the link they get a page where they can download all the games they have available (currently only one for sale ..) and potential updates to them. They are also cookied with the key so that the site remembers them on later visits.
Other parts of the system:
- Page where you can enter your email address and have your "key" resent to you
- All downloads are through a PHP script tagging them to specific users. I use this for tracking that people actually download and following through with customer support if they don't.
- Archives of old releases available to all validated customers
- The game itself contains a "Check for updates" button that uses libcurl to poll a specific server script for new versions. If there is a new version available a standard browser window opens. As the user is almost always cookied (and thus automatically logged in) they can download the update with a single click.
This has worked well for Space Station Manager which has had about 30 updates during the last year. I only get support requests when someone has changed emails and their old box is unavailable. Making the "key" impossible to remember also frees the customer from thinking they should do so .. :)
In my system all customers have a running single database ID that I use to identify them internally. After the order completes their information gets filled into the database (email etc). The server then sends them a link containing an unique 64 characterd md5 "key" that is just randomly generated. There is one table in the database to connect these sums to the internal customer ID. When the customer clicks the link they get a page where they can download all the games they have available (currently only one for sale ..) and potential updates to them. They are also cookied with the key so that the site remembers them on later visits.
Other parts of the system:
- Page where you can enter your email address and have your "key" resent to you
- All downloads are through a PHP script tagging them to specific users. I use this for tracking that people actually download and following through with customer support if they don't.
- Archives of old releases available to all validated customers
- The game itself contains a "Check for updates" button that uses libcurl to poll a specific server script for new versions. If there is a new version available a standard browser window opens. As the user is almost always cookied (and thus automatically logged in) they can download the update with a single click.
This has worked well for Space Station Manager which has had about 30 updates during the last year. I only get support requests when someone has changed emails and their old box is unavailable. Making the "key" impossible to remember also frees the customer from thinking they should do so .. :)