The Easiest License
- Bibliotheken
- Dario Pedruzzi
- Version: 1.0
- Aktivierungen: 5
Verwenden Sie ein einfaches Google-Sheet, um Ihr Produkt zu lizenzieren
Nach Jahren der Entwicklung von Handelssoftware habe ich festgestellt, dass ein einfaches und kostengünstiges System zur Lizenzierung der Software an Ihre Kunden fehlt.
Jetzt ist diese Last verschwunden, indem der MT4 und Ihre Software mit einem einfachen Google Sheet verbunden werden, das zur Aktivierung oder Deaktivierung des Kontos verwendet werden kann, auf dem Ihre Software läuft.
Mit einer minimalen Einrichtung können Sie Ihre Software zusammenstellen und verteilen, ohne Angst haben zu müssen, von Hackern oder bösen Menschen verdorben zu werden.
Mit einer einzigen Tabelle können Sie mehrere Produkte verwalten und Ihre Kunden glücklich (und zahlend) machen.
Was die Bibliothek leisten kann:
- Einbinden einer Header-Datei und des Klassenkonstruktors in Ihre Software (Indikator oder Expert Advisor oder Utility)
- Starten Sie die Klasse und rufen Sie die Setup-Methode auf
- Verwenden Sie die CheckLicense-Methode in einem OnTimer oder OnClick, um eine Antwort zu erhalten.
Art der Antworten:
Die CheckLicense-Methode gibt zurück:
- 0, wenn es ein Problem gibt (Terminal nicht angeschlossen, Kontonummer gleich Null usw.)
- 1, wenn die Lizenz gültig ist und das Konto Ihre Software nutzen kann
- -1, wenn die angegebene Kontonummer nicht in der Lage ist, Ihre Software zu nutzen
Was Sie tun müssen, um die Bibliothek zu nutzen:
Aktivieren Sie die Webanfragen an die Domainhttps://sheets.googleapis.com
Erstellen Sie eine Header-Datei und legen Sie sie in den Ordner "includes".
Erzeugen Sie einen Google Sheet API KEY (googeln Sie ihn oder warten Sie, bis ich die Prozedur geschrieben habe)
Sammeln Sie die Google Sheet ID (sie steht in der URL des Arbeitsblatts)
Verwalten Sie das Verhalten Ihrer Software in den drei Fällen (eine Warnung senden, deaktivieren, nichts malen, usw.)
Code-Beispiel für einen Indikator:
// Header-Datei (Kopieren Sie sie und fügen Sie sie in eine neue Datei LicenseEngineHeader.mqh im Ordner includes ein)
//+------------------------------------------------------------------+ //|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 "";}; }; //+------------------------------------------------------------------+
// Includes in der Datei yourproduct
#include <LicenseEngineHeader.mqh>
#import "LicenseEngine.ex4"
CGSLE *iGSLE();
#import
// Einleitung
LicenseEngine = iGSLE(); LicenseEngine.Setup(PERSONAL_API_KEY, SPREADSHEET_ID, PRODUCT_NAME);
// onTick oder OnTimer, OnCalculate Implementierung
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; }
In zukünftigen Versionen, falls gewünscht:
- Unterstützung des Verfallsdatums
- Lizenz per E-Mail prüfen
- Anpassung von Warnmeldungen
- Auffrischung der aktivierten Konten alle XXX Minuten
- MT5-Version
