Web Services Overview
SOLO Server offers several web services which allow you to build custom interfaces which interact directly with SOLO Server via HTTP.
Supported Web Services
Web Service | Description |
---|---|
Activation Server | Provides a method which may be used for generating activation codes for the manual/trigger code activation process. Whenever possible, however, we strongly encourage the use of the XML Activation Service instead, as it contains support for newer and more robust activation features. |
Cart Server | Includes methods for creating and manipulating carts. This is particularly useful for a highly customized integration with a brochure website that would be otherwise difficult to achieve through the use of cart query string parameters alone. |
Customer Server | Supplies methods for creating customers and manipulating customer registration data. Because it contains features and capabilities not previously available with its predecessor, the newer XML Customer Service should be used instead, whenever possible. |
License Server | Includes methods for creating licenses and manipulating customer registration data. The superior XML License Service should be used instead, if at all possible. |
XML Activation Service | Supplies methods for activating, deactivating, and validating Protection PLUS 4 SDK, Instant Protection PLUS 3 and Protection PLUS 5 SDK license installations. |
XML Customer Service | Provides methods for finding and authenticating customers. |
XML License Service | Includes methods for creating, manipulating, and validating licenses. |
XML License File Service | Includes methods for retrieving and refreshing Protection PLUS 5 SDK license files. |
Contact support@softwarekey.com if you determine a need for one or more customized web services for your application.
Web Service Security
For security reasons, certain SOLO Server web services require the following to be passed to the web method:
- Author ID
- API User ID
- API User Password
If you are using any of the web methods that require these values as inputs, you need to create an Integration User on your SOLO Server account, which will be used exclusively for the web services. An Integration User cannot log into the SOLO Server author interface.
If you are currently using the regular UserID and UserPassword credentials, you will need to update your application(s) to use an API UserID and API UserPassword instead, as support for the regular User ID and Password will be removed in the future.
The web methods that require providing an AuthorID, API UserID, and API User Password as inputs (see below) should only be used by your internal systems and applications. It is not safe to deploy your protected applications with API credentials, as this exposes a security risk to your account. If you absolutely need to allow your protected application(s) to use these web methods, we recommend creating and hosting a proxy web service that can properly authenticate the request from your software and then make the web service call to SOLO Server.
Creating an Integration User
To create an Integration User, first add a new user.
You can also edit an existing user to update them to an Integration User.
Enable the Integration User option in the Settings section:
This user's Group can be set to NONE, and they should be granted the appropriate user permissions to perform the required action of the web service method(s) you are using (see below).
To ensure even greater security, you can also use the Outside Access field on the user record to restrict which IP addresses can call the web methods.
After clicking Save button, viewing the user will list the system generated API User ID and API User Password:
An Integration User is used exclusively for the web services. An Integration User cannot log into the SOLO Server author interface.
Affected Web Service Methods and Required Permissions
The following web methods require the AuthorID/API UserID/API UserPassword and these User permissions:
Web Service Method | Required User Permission(s) |
---|---|
CustomerServer.CreateCustomer | Add Single Customer |
LicenseServer.AddLicenseAndUnregisteredCustomer | Add Single Customer, Add Licenses |
XmlCustomerService.GetCustomerDataByAuthor | none |
XmlCustomerService.CustomerSearch | none |
XmlCustomerService.CustomerLogin | none |
XmlLicenseService.Add | Add Licenses |
XmlLicenseService.UpdateActivationFields | Edit Licenses |
XmlLicenseService.UpdateUserDefinedFields | Edit Licenses (when User Defined Fields Writable setting is disabled) |
XmlLicenseService.GetLicenseCustomData | none |
XmlLicenseService.UpdateLicenseCustomData | Edit Licenses |
Any reports accessed programatically | dependent on the report |
Accessing Web Services from your Application
Application Programming Interface (API) Libraries
The SoftwareKey System offers an assortment of libraries which provide APIs that simplify the invocation of these web services from your application. This collection of API libraries includes:
- The Protection PLUS 5 SDK libraries, including the PLUSManaged library (for .NET applications), and the PLUSNative library (for native applications).
- The Automation Client library, which is included with Protection PLUS 4 SDK for native/unmanaged applications.
- The SwkClientServices2005 library, which is included with Protection PLUS 4 SDK for .NET/managed applications.
Please refer to the applicable product manuals and sample projects for more information on each library/API.
Automation Client Scripts
SOLO Server also includes a variety of Automation Client scripts, each of which is specifically designed to work with Automation Client functions. Although these web services provide the same (and more!) functionality than the Automation Client scripts, the scripts may still be a more convenient means of gearing your application to communicate with SOLO Server.
Custom Web Form Integration
In some cases, these web services may be used with your own, custom web forms. (An example of a custom web form is Self Hosted Trial Tracking forms.) If you are creating custom web forms which integrate with these web services, you should review the Client Validation Script, which simplifies adding client-side validation to your forms, which will help ensure that SOLO Server accepts the data entered by the end-user.