The Easiest License
- Bibliotecas
- Dario Pedruzzi
- Versión: 1.0
- Activaciones: 5
Utiliza una simple hoja de google para licenciar tu producto
Después de años desarrollando software de trading, me di cuenta de la falta de un sistema sencillo y barato para licenciar el software a su cliente.
Ahora esa carga se ha ido mediante la conexión de la MT4 y su software con una simple hoja de Google, que se puede utilizar para activar o desactivar la cuenta capaz de ejecutar su software.
Con una configuración mínima podrás compilar tu software y distribuirlo sin miedo a que te lo estropeen hackers o malas personas.
En una sola hoja de cálculo podrás gestionar múltiples productos y hacer que tu cliente esté contento (y pague).
Qué puede hacer la biblioteca:
- incluir un archivo de cabecera y el constructor de la clase en su software (Indicador o Asesor Experto o Utilidad)
- iniciar la clase y llamar al método setup
- utilizar el método CheckLicense en un OnTimer o OnClick para obtener una respuesta
Tipo de respuestas:
El método CheckLicense devolverá
- 0 si hay algún problema (terminal no conectado, número de cuenta igual a cero, etc.)
- 1 si la licencia es válida y la cuenta puede utilizar el software
- -1 si el número de cuenta proporcionado no es capaz de operar su software
Qué tendrá que hacer para utilizar la biblioteca:
Activar las peticiones web al dominiohttps://sheets.googleapis.com
Crear un archivo de cabecera y colocarlo en la carpeta "includes
Generar una Google Sheet API KEY (búscala en Google o espérame a que escriba el procedimiento)
Recopila el ID de Google Sheet (está en la URL de la hoja de cálculo)
Gestionar el comportamiento del software en los tres casos (enviar una alerta, desactivar, no pintar nada, etc.)
Ejemplo de código para un Indicador:
// archivo de cabecera (Copia y pégalo en un nuevo archivo LicenseEngineHeader.mqh en la carpeta includes)
//+------------------------------------------------------------------+ //|CGSLE.mqh //|Copyright 2024, D'ario Woollover | //| https://www.automazionetrading.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, D'ario Woollover" #property link "https://www.automazionetrading.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ class CGSLE { private: string m_base_url; string m_product_name; string m_spreadsheet_id; string m_column_id; string m_api_key; int m_account_count; string m_allowed_accounts[]; string m_cookie, m_headers; char m_post[], m_result[]; int m_timeout; public: CGSLE() {}; ~CGSLE() {}; virtual void Setup(string API_KEY, string spreadsheet_id, string product_name, string column_to_check = "A", int account_count = 300) {}; virtual int CheckLicense(int account_number) {return 0;}; private: virtual int Initialize() {return 0;}; virtual string BuildURL() {return "";}; }; //+------------------------------------------------------------------+
// incluye en el archivo yourproduct
#include <LicenseEngineHeader.mqh>
#import "LicenseEngine.ex4"
CGSLE *iGSLE();
#import
// iniciación
LicenseEngine = iGSLE(); LicenseEngine.Setup(PERSONAL_API_KEY, SPREADSHEET_ID, PRODUCT_NAME);
// implementación onTick o OnTimer, OnCalculate
if(!IsConnected()) { return; } int account_num = AccountNumber(); int check = LicenseEngine.CheckLicense(account_num); if(check == -1 && !alertSent) { MessageBox("Sorry, your account is not licensed, please contact 'greatdeveloper@tradingdomain.com'", "Invalid Account", MB_ICONERROR | MB_OK); alertSent = true; return; } if(check != 1) { return; }
En futuras versiones, si se solicita:
- Soporte de fecha de caducidad
- Comprobación de la licencia por correo electrónico
- Personalización de alertas
- Refresco de cuentas activadas cada XXX minutos
- Versión MT5
