Go to Kagi.com (store front for doing sales of your digital product)
Go to softworkz.com (Software Licensing and Activation Code Generator)
Softworkz.com is fully integrated into Kagi.com and Softworkz.com will be paid from Kagi.com for each activation. Therefore, you are never out of pocket for the activation. Kagi.com does the sale and collects the fee from the end user, sends a request for an activation key to softworkz.com. Softworkz.com sends email to end user with activation key. End user enters activation key into your product, your product calls a softworkz dll that verifies and activates. I have an purebasic include file for the softworkz.com dll for all the dll functions. I am however having one problem that I will be posting in another thread.
So far, everything works great.
Here is the include file for the softworkz dll (which is called DNA.dll)
Code: Select all
Global DNAdll.l
Enumeration
#ERR_NO_ERROR=0
#ERR_ACTIVATIONS_EXCEEDED = -3
#ERR_DNA_DISABLE = -2
#ERR_VALIDATION_WARNING = -1
#ERR_NO_CONNECTION = 1
#ERR_CONNECTION_LOST = 2
#ERR_LOCKOUT = 3
#ERR_INVALID_COMMAND = 4
#ERR_INVALID_PRODUCT_KEY = 5
#ERR_INVALID_ACTIVATION_CODE = 6
#ERR_INVALID_PASSWORD = 7
#ERR_ACTIVATION_EXPECTED = 8
#ERR_REACTIVATION_EXPECTED = 9
#ERR_BANNED_ACTIVATION_CODE = 10
#ERR_NO_EMAIL_PROVIDED = 11
#ERR_INVALID_BUILD_NO = 12
#ERR_EVAL_CODE_ALREADY_SENT = 13
#ERR_EVAL_CODE_UNAVAILABLE = 14
#ERR_CDM_HAS_EXPIRED = 15
#ERR_CODE_HAS_EXPIRED = 16
#ERR_INVALID_NEW_PASSWORD = 17
#ERR_CDM_WRITE_PROTECTED = 18
#ERR_CANCELLED_BY_USER = 98
#ERR_OPERATION_FAILED = 99
EndEnumeration
;procedure to Open DNA.dll
Procedure UseDNAdll()
DNAdll=OpenLibrary(#PB_Any,"DNA.dll")
EndProcedure
;release DNA.dll resources
Procedure FreeDNAdll()
CloseLibrary(DNAdll)
EndProcedure
; Procedures from DNA.dll
Procedure DNA_Activate(product_key.s, activation_code.s, password.s, email.s)
ProcedureReturn CallFunction(DNAdll,"DNA_Activate", @product_key, @activation_code, @password, @email)
EndProcedure
Procedure DNA_ActivateOffline(product_key.s, activation_code.s)
ProcedureReturn CallFunction(DNAdll, "DNA_ActivateOffline",@product_key, @activation_code)
EndProcedure
Procedure DNA_Reactivate(product_key.s, activation_code.s, password.s, new_password.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Reactivate", @product_key, @activation_code, @password, @new_password)
EndProcedure
Procedure DNA_Validate(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Validate", @product_key)
EndProcedure
Procedure DNA_Validate2(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Validate2", @product_key)
EndProcedure
Procedure DNA_Validate3(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Validate3", @product_key)
EndProcedure
Procedure DNA_Validate4(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Validate4", @product_key)
EndProcedure
Procedure DNA_Validate5(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Validate5", @product_key)
EndProcedure
Procedure DNA_ValidateCDM(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_ValidateCDM", @product_key)
EndProcedure
Procedure DNA_ValidateCDM2(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_ValidateCDM2", @product_key)
EndProcedure
Procedure DNA_ValidateCDM3(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_ValidateCDM3", @product_key)
EndProcedure
Procedure DNA_ValidateCDM4(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_ValidateCDM4", @product_key)
EndProcedure
Procedure DNA_ValidateCDM5(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_ValidateCDM5", @product_key)
EndProcedure
Procedure DNA_Deactivate(product_key.s, password.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Deactivate", @product_key, @password)
EndProcedure
Procedure DNA_SendPassword(product_key.s, activation_code.s)
ProcedureReturn CallFunction(DNAdll, "DNA_SendPassword", @product_key, @activation_code)
EndProcedure
Procedure DNA_Query(product_key.s, activation_code.s)
ProcedureReturn CallFunction(DNAdll, "DNA_Query", @product_key, @activation_code)
EndProcedure
Procedure DNA_InfoTag(product_key.s, activation_code.s, tag.s)
ProcedureReturn CallFunction(DNAdll, "DNA_InfoTag", @product_key, @activation_code, @tag)
EndProcedure
Procedure DNA_SetBuildNo(build_no.s)
ProcedureReturn CallFunction(DNAdll, "DNA_SetBuildNo", @build_no)
EndProcedure
Procedure DNA_SendEvalCode(product_key.s, email.s, machineID.i)
ProcedureReturn CallFunction(DNAdll, "DNA_SendEvalCode", @product_key, @email, machineID)
EndProcedure
Procedure DNA_SetCDMPathName(pathname.s)
ProcedureReturn CallFunction(DNAdll, "DNA_SetCDMPathname", @pathname)
EndProcedure
Procedure DNA_SetINIPathName(pathname.s)
ProcedureReturn CallFunction(DNAdll, "DNA_SetINIPathName", @pathname)
EndProcedure
Procedure DNA_ProtectionOK(product_key.s, Request_EvalCode.i, machineID.i)
ProcedureReturn CallFunction(DNAdll, "DNA_ProtectionOK", @product_key, @Request_EvalCode, machineID)
EndProcedure
Procedure DNA_SetProxy(server.s, port.s, username.s, password.s)
ProcedureReturn CallFunction(DNAdll, "DNA_SetProxy", @server, @port, @username, @password)
EndProcedure
Procedure DNA_SetLanguage(language.i)
ProcedureReturn CallFunction(DNAdll, "DNA_SetLanguage", language)
EndProcedure
Procedure DNA_EvaluateNow(product_key.s)
ProcedureReturn CallFunction(DNAdll, "DNA_EvaluateNow", @product_key)
EndProcedure
Procedure DNA_UseIE(Use_IE_Settings.i)
ProcedureReturn CallFunction(DNAdll, "DNA_UseIESettings", Use_IE_Settings)
EndProcedure
What I am working on now is the portion that returns additional information from the softworkz.com database.
I will edit with a link to the problem procedure thread listed {edit} here is link http://www.purebasic.fr/english/viewtop ... 13&t=48552.
Slyvnr