A former community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.
We're closed, folks!
Doug Nebeker ("Doug")
I'm nearing completion of a desktop application and so I've started to look at how to sell it. I've decided to go with a system that on install will require online verification of the licenses. I'm not too bothered about this side of things... At the moment I'm leaning the way of customizing something off of codeplex.com as I would then know how it works, have control over it and not be locked in to another vendors system. I'm aware of the ins-and-outs of this decision.
I have yet to make the website and so with the above in mind I could develop the system end-to-end, but I'd prefer to spend as much time on the application rather than doing this. This is where I have a problem. If I don't develop my own site and go with a nice shiny cms (Mojoportal, DNN, Umbraco) I then have think about a shopping cart that will issue licenses from a list that I have given them and all the problems that this entails, or some how shoehorning my own code into their source.
Sorry for the rambling, but I would appreciate some indication of how others have done this (especially from .Net developers).
>> "At the moment I'm leaning the way of customizing something off of codeplex.com"
I keep a pretty close eye on our competitors, including the open source options. I just double checked CodePlex and there hasn't been a whole lot of progress from the last time I did a thorough check. They all suffer from one of the 4 problems we've listed here: http://wyday.com/limelm/features/why/#fake-activate
Most suffer from #1. The others suffer from #3.
It's perfectly fine to build your own licensing, but you need to come at it from a clear-eyed perspective. Understand that online activation is more than just pinging a server. And asymmetric encryption (public/private key encryption), by itself, is useless.
*What* you're cryptographically signing and *how* you're talking to your server matters.
The CodePlex code is, if nothing else, a good guide in what not to do. That's useful if you decide to build your own properly designed hardware-locked licensing. Learn from the copious mistakes of others.
>> "[...] not be locked in to another vendors system. "
I can't speak for our competitors, but with us (using LimeLM) you're not locked in. You can cancel at any time and take all your data with you. It's our job to keep you a happy customer so you don't want to leave.
>> "This is where I have a problem. If I don't develop my own site and go with a nice shiny cms (Mojoportal, DNN, Umbraco) I then have think about a shopping cart that will issue licenses from a list "
Most of these CMS systems have plugins that can be used to take actions at different points in the order process. So most of the time it's simply a matter of writing a bit of code that is called after the order is complete.
A less "bulky" option outside of a full "cart" system, is using the callback methods of individual payment processors. For example, PayPal has a whole bunch of example code in different languages showing how to use their IPN (instant payment notification system). Here's PayPal: https://cms.paypal.com/uk/cgi-bin/marketingweb?cmd=_render-content&content_ID=developer/library_code_ipn_code_samples
Also, any third party licensing worth its salt has payment processing "hooks" already written. We certainly do: http://wyday.com/limelm/help/how-to-generate-product-keys-after-order/
But, honestly, whether you're using a product like ours, or building the licensing entirely in-house, your best bet is to go with a proper payment processor that handles all the details rather than hosting a "cart" CMS on your site. There's a whole bunch of payment processors, but I typically recommend FastSpring because they're actually competent.
Wednesday, August 28, 2013
Wyatt, a question about your licensing. I recently had no internet access at all. Say I download a product at work and bring it home to install and run, but it wants activation. How will that work, considering I can't access the net at home? Can your solution handle that, without requiring internet access at all?
>> "Can your solution handle that, without requiring internet access at all?"
Yes, we support offline activation: http://wyday.com/limelm/help/offline-activation/
Let's say CompanyX is using TurboActivate in their app, AppX. You buy it and install it on your computer and enter the product key they sent you. You can try to activate AppX online, or you can just skip to the offline process if you already know you don't have a connection.
What offline activation does is split the activation process into 2 parts. AppX will generate an "activation request" XML file (about 1 KB in size) and you send that to CompanyX. You can do it by email, by SMS message, by website form that you can access from another computer / connection (e.g. cellular network), or by any other method. In return you get an "activation response" XML file (again, about 1 KB in size).
You then use this "activation response" XML file to activate the AppX your bought.
From CompanyX's perspective everything can be automated. That is, they can receive the offline "activation request" and send the "activation response" without spending any human time.
Also, let's say that you're buying licenses for AppX that will be installed on 100 computers, none of which has access to the Internet. Locked down environments like these are common in banks, for instance. You can use a simple tool to collect the "activation requests" of all 100 computers at once, send them in a batch to CompanyX from a computer that isn't locked-down, and then use the tool to activate the 100 computers using the "activation responses".
Thursday, August 29, 2013
Wyatt, thank you for taking the time to answer my question. There's a lot to think about... Can you tell me why you'd recommend something like Fastsprings over an onsite cart?
Ideally I'd like the customer email and their license number to be returned from the payment provider ( I know a lot provide this ) to be entered into a licensing database and await activation. Can I just plug in Fastsprings returned customer details into your licensing system?
If I do opt for TurboLicensing what format are the license keys in? I noticed somewhere on your site an example with 7 groups of 5 digits or so. Ideally I was imagining 5 groups similar to microsoft type licenses. Do you use 7 groups to allow for more information to be contained?
I can see why developers might want to keep there payment/licensing details under their belt, but as much as any other members feel they can explain their systems - whether in house or third party I would be grateful to hear their comments.
>> "But Scott, [...]"
>> "I'm at home with no access to the internet at all. Then what?"
If you have no cellphone, no SMS, no broadband, no dial-up, no carrier pigeon, etc. then your options require an extra step. For you, since you have internet at work, it might look something like this:
1. You install AppX on your computer and generate the "activation request" XML file and put it on a removable media (USB drive, floppy disk, whatever you have laying around).
2. You go to work, on your lunch break you spend 30 seconds to plop that "activation request" file on CompanyX's automated "offline activation" form on their website. Out comes the "activation response". You put it on your floppy or USB drive.
3. You come home and stick the USB drive or floppy into your computer and activate AppX using the "activation response".
>> "Can you tell me why you'd recommend something like Fastsprings over an onsite cart?"
Because with something like FastSpring, Plimus, or one of the dozen or so others, you can "theme" the purchase page and have everything up an running in an afternoon.
Carts, on the other hand take precious time to configure correctly. Also, if you're using a merchant account (through a bank or with something like Authorize.Net), then your problem are compounded. You'll have to spend time & money worrying about PCI compliance, fraud prevention, etc.
>> "Can I just plug in Fastsprings returned customer details into your licensing system?"
Yes, absolutely. See: http://wyday.com/limelm/help/automate-license-generation-with-fastspring/
>> "If I do opt for TurboLicensing what format are the license keys in?"
Yes, there's more internal data encoded in our keys than, say, a Windows key. Our key looks like this:
So, 28 characters in all (excluding the dashes which contain no information). It's 3 characters longer than Microsoft Windows keys. Actually, it's only 1 character longer (you can drop the trailing "TA" and append them after the customer enters the key).
But I'm not sure why the length of the key should matter. It's short enough to be read over the phone or written on a post-it note.
Friday, August 30, 2013
Sorry Wyatt for calling you Scott... you both have 5-letter names ending in TT and one vowel in the middle. :)
At work we can't access non-approved websites, so I can't do it that way either. So do you do voice activation work instead by phone call from work? Like when I call Microsoft to get a verbal activation key?
>> "So do you do voice activation work instead by phone call from work?"
No, we don't. We've considered it, but in practice we haven't needed it. That is, for even our customers that serve end-users in "3rd world" countries with spotty internet, our offline activation works perfectly. And in places where there is little to no internet access activating by SMS has been implemented by at least 1 of our customers.
That being said, we might implement an automated "phone activation" in the future. But it's not a priority, not demanded by our customers, and not needed by the end-users.
Saturday, August 31, 2013
At PayPro Global we offer our partners 2 licensing solutions for their applications:
->PayPro Passport, which offers automated license creation, distribution, and software activation. This option is offered for free to our partners.
-> VMprotect - a third party software protection solution that we have fully integrated into our e-commerce platform. This product offers more advanced licensing and activation features
Alternatively, we offer the possibility to integrate your own licensing solution into our system:
->HTTP license key generation
->Pre-Uploaded license keys
Friday, September 06, 2013
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz