Now then, I have a nice little step-by-step system that works when a person buys a game. The whole thing's automated so I don't really have to do anything. The person goes to my little buy page, enters his paypal/googlecheckout info, and then the server dutifully sends him an email with a download link and a server-generated unlock code. Then the user downloads the game, enters the unlock code, and he's good to go.
Simple as pie.
Unfortunately, it's not as simple as German Chocolate Cake, as my customer "Bjorn" recently discovered. Because Bjorn's got umlauts in his name, the server dutifully emailed him a bogus unlock code because my code-builder assumes 7-bit ASCII because I'm an idiot. Of course, since that's server-side, the bogus unlock code still worked with the download-machine that uses the same validator, so he was able to download the game, but not before the system messed up his name in the entry-fields because I wasn't properly URL-encoding things. Then he got his game downloaded but couldn't enter his name because I limit the edit field's values to 7-bit ASCII. Finally I couldn't even validate his name after removing that limitation because the font I used didn't have those characters. And of course even after I changed the font to something a bit more international, the code still didn't work because it was encoded incorrectly by the server!
So that's about six bugs from one umlaut. That's three bugs per dot. Took me a whole danged afternoon because every time I fixed a bug, it'd uncover another one further down the pipeline.
But I'm now a mite more international now. I'm just amazed I got this far before this bug cropped up. Probably 50% of my sales are non-US, so you'd think I would've seen it sooner.