Как бы я пошел о лицензировании приложения WPF windows [закрыто]

Я разработал небольшое приложение, которое я хотел бы попробовать и продать, но я не знаком с тем, как лучше всего это сделать.

  1. Как я могу заблокировать программу для пробного использования 1.

  2. Как я буду заниматься приемом платежей?

имея в виду, что я один человек группа с не много денег, я надеялся на решение, которое будет бесплатным или низкой стоимости, эффективным, безопасным и простой для того чтобы снабдить и поддержать. Это не то, с чем у меня есть большой опыт, поскольку я обычно разрабатывал для государственного сектора, где они покупают решение как whoel, и мы никогда не лицензировали его.

любая помощь будет действительно оценили. Спасибо,

B

4 ответов


Я могу рассказать вам, как я это делаю. Отказ от ответственности: ваш пробег может измениться. Это для случая предотвращения случайного пиратства простого WinForms или WPF или другого настольного приложения. Он не особенно надежен или защищен от сложного взлома, но он отлично справляется с предотвращением случайного пиратства.

  1. для лицензирования я попробовал несколько сторонних решений. Все они довольно просты в использовании для номинального случая предотвращение случайного пиратства, что, конечно, если единственное пиратство, о котором стоит беспокоиться.

  2. Я обнаружил, что ни один из поставщиков лицензий не был действительно совместим с существующими платежными процессорами / шлюзами. Есть несколько решений "все-в-одном", но уровень технического долга там был неприемлемым для меня (фрилансера и единственного разработчика). Я искал простой способ перейти от ссылки "Купить сейчас" на веб-сайте к разблокировке настольного программного обеспечения после покупки. Некоторые из существующих решения" все-в-одном "излишни для этой цели, некоторые полностью игнорируют аспект" покупки".

  3. Я закончил с помощью Цифровые Подписи Xml подписать лицензионные файлы с помощью закрытого ключа приложения, который никогда не распространяется среди пользователей. Результат: у вас есть .Лик ор .Файл LICX на целевой машине, который пользователи могут читать (это обычный текст, за исключением завернутой подписи), но не изменять. (Или, скорее, они не могут изменить его без вас зная они изменили его. Этот маленький файл-ключ ко всей системе.

  4. когда приложение загружается, он проверяет, что подпись XML действительна (используя открытый ключ приложения, который is распространяется с приложением), и если он действителен, он считывает информацию из файла лицензии и включает/отключает определенные функции на основе этого. Например, файл лицензии может содержать дату истечения срока действия продукта или несколько частей уникальной информации о машине (будьте осторожны, всегда, чтобы не доставлять неудобства вашим законным пользователям...вы не хотите, чтобы им приходилось повторно применять лицензионные ключи каждый раз, когда они меняют жесткий диск).

  5. в качестве дополнительного (и немного более инвазивного) шага вы можете подключить приложение к вашему серверу, хотя это приведет вас к проблемам простоя сервера и так далее и так далее. Некоторые разработчики готовы мириться с этим, другие-нет.--1-->

  6. теперь купить часть, есть много много вариантов. PayPal-это намного проще. Вам могут понравиться или не понравиться их тарифные планы, но это абсолютный шанс встать и работать с Paypal.

  7. для этого вам нужна учетная запись Premier или Business, а не личная учетная запись. Примечание: в документах Paypal иногда говорится, что вам нужен бизнес-счет Paypal. Всякий раз, когда они говорят это, они на самом деле имеют в виду "бизнес Paypal или премьер-счет".

  8. теперь вам сам сайт продукта и настроить кнопки "Купить сейчас" и т. д. Когда пользователь совершит покупку, ваш сайт получит пинг от Paypal IPN, который является их служба уведомлений. Этот ping - это просто вызов определенной конечной точки HTTP на вашем веб-сайте, и он содержит всю необходимую информацию о покупке. В основном, электронная почта пользователя...

  9. (хорошо, я чувствую, что должен упомянуть: Paypal вместе с большинством других законных процессоров имеют "песочница", где вы можете проверить все это, прежде чем жить. Делает чудеса, чтобы дать вам теплый пушистик о том, чтобы на самом деле жить, с деньгами на линии.)

  10. который вы будете использовать для автоматической отправки пользователю кода активации после покупки, поэтому им не нужно ждать 24 часа, чтобы вручную отправить им код. Хранить этот код активации (который в этом случае может быть уникальным, сложно угадать число, например GUID, приукрашивали или нет) в БД с использование подсчет, который вы будете отслеживать, чтобы обнаружить дубликаты кодов.

  11. пользователь вводит код активации в программное обеспечение через экран, который вы предоставляете.

  12. программное обеспечение связывается с сервером через https (это одноразовая вещь, которая происходит только тогда, когда программное обеспечение разблокировано) и говорит: "Эй, этот лицензионный код, который пользователь только что дал мне действительный?"

  13. если предоставленный код активации соответствует коду, хранящемуся в базе данных на время продажи, и этот код активации еще не подтвержден, тогда успех!

  14. затем сервер должен создать файл лицензии, который является чрезвычайно простым XML или текстовым файлом, содержащим "то, что эта копия программного обеспечения разрешено делать". Нет никакого стандарта для того, что он должен содержать, только несколько конвенций.

  15. сервер подписывает файл лицензии с помощью закрытого ключа приложения и возвращает его в виде потока данных ваше приложение...

  16. что сохраняет его как a .Лик ор .Файл LICX (или любое расширение, которое вы хотите), который затем проверяет время загрузки в соответствии с шагом 3.

Это работает очень хорошо для меня, и это легко реализовать. Ключ к все это просто: доверять эти XML DSigs. Если файл LIC отсутствует, по умолчанию используется пробный режим. При изменении sig переключается в пробный режим. Только когда файл LIC присутствует, действительно подписан, и содержит правильную информацию, вы тогда (в коде) открываете доступ к "полной" функциональности.

кроме того, interperse более одной точки проверки лицензии в коде. Я делаю один при запуске приложения, другой на холостом ходу, а другой перед входом в ключевые функциональные области. Так что если кто-то отменит код, а они могут, им, по крайней мере, придется немного поискать, чтобы уничтожить все проверки лицензий. Конечно, ничто из того, что вы можете сделать, не может помешать людям исправлять свой путь вокруг тех проверяет. Ты просто хочешь сделать это немного сложнее.


Если вы хотите сделать это правильно, я бы честно рекомендовал купить доверенное стороннее решение для обеих этих вещей. Существует несколько пакетов лицензирования для .Net (мы используем Desaware для наших продуктов, хотя я непосредственно не работал с ними, поэтому я не мог дать подробную рекомендацию. Это кажется достаточно простым для того,что я подвергался воздействию). Нет суеты, нет ошибок, и выигрыш в долгосрочной перспективе огромен с точки зрения времени сохраненный.

сторонние платежные услуги могут обрабатывать онлайн-транзакции по кредитным картам для вас,и всегда есть PayPal. Google для "как принимать платежи по кредитным картам в интернете", и вы придумаете бесконечные поставщики торговых решений.

Если вы предпочитаете тратить время на создание системы лицензирования самостоятельно,этот поток StackOverflow очень хороший ресурс по различным аспектам рассмотрения.


вы захотите использовать некоторую форму проекция и лицензирование программного обеспечения для приложений .NET. Есть сотни вариантов, от очень недорогих (и статей о том, как свернуть свой собственный) до очень надежных коммерческих инструментов.


вы можете рассмотреть CryptoLicensing Для .Net - он предоставляет опции для полной, а также пробной версии (дни использования, уникальные дни использования, исполнения и т.д.). Он также поставляется с готовым к использованию сервером лицензий с интеграторами электронной коммерции для paypal, shareit, plimus и т. д.