views:

138

answers:

3

Hi,

I have seen multiple topics about online payment processors (OPP), but none of them talk about License file generation and it's something that's pretty hard to find on the website of the OPP's.

I want to sell a desktop application thru a website. When the user chooses to buy the product he will get a license file thru email (or via the email body). That license file can then be imported in the application.

I was thinking private/public rsa encryption of some properties that are requested of him during the buying (f.e. compagny name, number of clients, etc).

I can't seem to find an OPP that allows me to do this. I'm open to changes to my security implementation, but the license needs to be based on a number of user given properties since some of the properties will limit the applications use. (f.e. the number of clients: he pays for 10, so the application will only allow 10)

It also needs to be global.

Anyone ?

A: 

Check ayende's blog and his Rhino licensing component (it's open source)

He's using it in is already in production product, NHibernate Profiler.

Rodrigo Guerreiro
It's probably me, but I don't see how the answer is relevant to my question about Online Payment Processors ?
Tommy
A: 

If you are going to use the services of an "Online Payment Processor" then you will be limited to what they support.

The point of Rodrigo's post is that if you have custom licensing requirements, then you need to build that yourself. Creating a site to do this isn't rocket science; just see the links he provided.

Chris Lively
I think I'm not completelty following what you mean. I don't want to make my own accept 'visa/creditcard/...' site, I do want to be able to generate my own license files, or have good control over them, but the payment itself should be handled by the OPP.
Tommy
A: 

Payment processors only transfer money from the customer to you, they do not license your products. If you want to automatically generate a license key when a customer purchases your product online you have a few options:

  1. Handle the payment transactions yourself; accept credit card numbers or whatever on your site, pass them to the Payment Processor and, if it goes through, generate a license key and sent it to the customer in your "it worked!" page.

  2. Most payment processors have an inventory feature that can send you email when someone buys something. Build a service, or check this manually, and send a license key to the contact identified in the email. Beware, this is vulnerable to hackers sending you fake emails.

  3. All payment processors I am aware of have a reporting API you can connect to, either through a web page or programmatically, that lists transactions. Periodically look for completed transactions and send the contact a license key.

  4. Most payment processors return an authorization number, like what you get on a paper credit card receipt, when a customer pays. Tell customers to type this number into your application and have your app report this and whatever machine properties you want to track back to you. Get the authorization numbers from the payment processor and, when your app connects with one of these numbers, return info to the app about how to run. Note that authorization numbers are not unique, you will have to add some unique ID to each instance of your app.

Dour High Arch
What license scheme is recommended for desktop apps ? I have flexibility with mine (f.e. for the properties that would make the price I could offer a couple of fixed ones), and don't want to invest to much of the little time I have in the licensing. I'd rather improve the software itself
Tommy
There's no one scheme best for all apps. You could customize the app for each customer (e.g. by putting their name in windows, reports, files). You could store required data on a server of your own, give away the app, and charge for access to the server.
Dour High Arch