The way I have previously sold software for Windows is like this:
- User downloads software trial perhaps with some features disabled or a limited trial.
- Clicks on “upgrade”
- Software sends unique PC ID to website
- Website prompts to pay with PayPal
- User pays and is directed back to website
- Website generates code based on PC ID: code=f(ID) also sends copy of code in email.
- User types code into software
- Software checks if code is equal to f(ID) using same function.
- Software updates a secret file on users computer. (Actually doesn’t need to be secret. Can just store the code as it is unique to this computer.)
So a pretty long process. But so long as the function f to generate the code from the PC ID is not completely obvious, and works the same in the software as on the website, it is more-or-less foolproof. I also had a voucher system to bypass the payment step.
I had to create this system as the previous software deliver systems I had been using (Protexis?) Had gone bust.
But do you know of any simpler methods? It would be better if they weren’t directed off to an external website. And it would be better if they didn’t have to type in any codes. BTW. Feel free to copy this payment method for your own games.
Also, what’s the best way of getting a unique ID for a users computer in Unity in C#?