4 ms·
Ask HN: Service to handle demo-to-paid upgrades in a desktop app?
My team's B2C desktop application currently has an embarassingly long purchasing funnel. To go from the demo to a paid version requires that the user go to our web site, buy the product, check their email for a product key, then input that key into the app. We'd like to shorten that to just inputting your credit card info in-app, and having the app take care of the whole product key song-and-dance automatically.
Our requirements are pretty simple: we need to be able to charge the card, receive a product key (from a list of pregenerated keys) back in the app, and also fire off an email to the user with their product key for future reference.
Our best (bad) idea for how to do this is: Integrate with Stripe. When a purchase succeeds, have Stripe call a webhook on our server with Stripe's success token. Our server would then send the email and await contact from the client. By providing the Stripe success token, the client could ask our server to get their new key.
(There are obviously a lot of moving parts to this, and writing the server code, plus maintaining the live server is more work than we'd like to do if we have a choice.)
This seems like such a simple thing that a product must exist to solve it... I just can't for the life of me find a service that already does it.
Any ideas?
- WorldMaker 10y agoHave you considered the Windows Store? (Steam might also be an option depending on your audience, though it has picked up a larger number of non-game applications.) Yes, the Windows Store might not cover 100% of your audience if you are still covering Windows 7 users or Linux users, but making it an option might provide a very clear and simple purchasing funnel for Windows 10 users that do use the store. (Plus Mac Store for macOS users.) The Windows Store provides a lot of APIs to control and manage a purchasing funnel, and does a lot of the service things you would like someone to do for you. If your desktop app isn't yet a UWP app you can use the Desktop Bridge to build an app package for the Store of your desktop app.
- s3cur3 10y agoWe do have a Steam version, but for a lot of our (non-gamer) audience, Steam is an extra (and confusing) step in the funnel. It hadn't occurred to me that the platform-specific app stores are the way people have been solving this problem (and thereby doing away entirely with product keys). It's something we've looked into, but as we're 3 platform (Mac/Windows/Linux), we've never taken the plunge. My biggest concern would be installation size. Right now, our minimum install is about 8 GB, but if you install all the optional content, it goes up to about 60 GB. I'm not sure the app stores (aside from Steam) have a model to support that.
- WorldMaker 10y agoIt does get complicated dealing with all the platform-specific stores for a cross-platform app (about to experience a lot of that pain soon enough for some of my work), but it does seem to be the most convenient way to get out of needing to manage product keys and DRM and yet still being where users expect to buy your application. For what is worth, I've installed several very large applications from the Windows Store (Xbox Play Anywhere titles, one of which is > 80 GBs) with no problem [1] and they seem as well optimized for that as Steam. (Which may not be a surprise given it's largely the same backend now for both Xbox and Windows.) The Windows Store also has DLC/in-app purchases support for things like optional content, very similar to Steam, and could potentially help you manage that as well. [1] I did need to know how to switch default application installs to a different disk, but that's a problem Steam users face too, and the solutions are very similar.
- ezekg 9y agoI've been working on bootstrapping Keygen[0]. You could set up Stripe and Keygen to communicate with each other using webhooks[1], so when a customer buys the product, you create a license for them either from a per-determined pool of keys or generated on-demand. You could also manage users within Keygen, which would allow them to log into and use your app without inputting license keys (all licenses would be managed behind the scenes in that case, which offers a better UX). [0]: https://keygen.sh https://keygen.sh [1]: https://keygen.sh/docs/api#webhooks https://keygen.sh/docs/api#webhooks