使用Java中调用DRM-X XML Web service许可证服务

使用Java中调用DRM-X XML Web service许可证服务

概览:
DRM-X许可证服务提供接口您可以在您的网站中调用。通过调用DRM-X许可证,可以与您的网站无缝集成应用海海软件DRM-X。

整个流程非常简单您只需调用 getLicenseRemote函数,并提供几个参数,然后DRM-X许可证服务将会给您返回许可证值。

DRM-X许可证服务需要以下参数:
AdminEmail 是您登陆DRM-X帐户的邮件地址。
WebServiceAuthStr 是登录验证DRM-X许可证服务验证码。您可以在DRM-X帐户信息->网站集成参数中设置此验证码。
ProfileID 是许可证模版ID 或者编码器许可证模版ID. DRM-X 提供此参数
ClientInfo 客户端基本信息. DRM-X 提供此参数
RightsID 是您在DRM-X帐户创建的权限ID. 您可以在DRM-X帐户许可证权限列表中找到权限ID。

UserLoginName 是您用户数据库中的用户名或者是用户ID,UserLoginName必须是在您的数据库是唯一的。
UserFullName 是您用户数据库中的用户姓名。这个参数是选项。你可以留空,或者将它的值设置为N/A。
GroupID是您在DRM-X帐户创建的用户组ID. 您可以在DRM-X帐户用户组列表中找到用户组ID。
Message 是DRM-X 许可证服务返回的许可证消息信息。


当您在代码中调用getLicenseRemote,并且提供正确的参数,它将给您返回许可证值。
下面是详细的步骤:

第一步:请在确认调用对象DRM-X Web服务地址,并查看:
http://www.drm-x.net/HaihaisoftLicenseService.asmx

第二步: 创建一个DRM登录页面,命名为drmlogin.jsp

下面是drmlogin.jsp代码(以下代码引用了类库:org.apache.axis.client.Service,org.apache.axis.client.Call,javax.xml.namespace.QName"%>


<%@ page contentType="text/html; charset=GBK" language="java" %>
<%@pageimport="org.apache.axis.client.Service,org.apache.axis.client.Call,javax.xml.namespace.QName,org.apache.log4j.Level"%>

<%
  String AdminEmail="
您登陆DRM-X帐户的邮件 ";
  String WebServiceAuthStr="
登录验证DRM-X许可证服务验证码 ";
  String ProfileID =  request.getParameter("profileid");
  out.println(ProfileID);
  String ClientInfo = request.getParameter("clientinfo");
  out.println(ClientInfo);
  String RightsID =  request.getParameter("rightsid");
  out.println(RightsID);
  String UserLoginName = "
数据库中的用户名 "; 
  String UserFullName = "
用户名全名 "; 
  String GroupID="
您在DRM-X帐户创建的用户组ID ";
  //javax.xml.rpc.holders.StringHolder Message=new javax.xml.rpc.holders.StringHolder();
  //Message="N/A";
  String Message="";
  String license = "0";
  String IP=request.getRemoteAddr();
   String namespace="http://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService";

  try {        
        String endPoint="http://cn.drm-x.com/haihaisoftlicenseservice.asmx?wsdl";
        Service service = new Service();
        Call call = (Call)service.createCall();
       
        call.setTargetEndpointAddress(new java.net.URL(endPoint));
       //call.setOperationName(newjavax.xml.namespace.QName("http://tempuri.org/SDRM/HaihaisoftDRMService","getLicenseRemote"));
       
        call.setOperationName(newjavax.xml.namespace.QName("http://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService","getLicenseRemote"));
       
       
        call.addParameter(newQName(namespace,"AdminEmail"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"WebServiceAuthStr"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"ProfileID"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"ClientInfo"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"RightsID"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"UserLoginName"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"UserFullName"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"GroupID"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
         call.addParameter(newQName(namespace,"Message"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.INOUT);
         call.addParameter(newQName(namespace,"IP"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
               
        call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
        call.setUseSOAPAction(true);
        //call.setSOAPActionURI("http://tempuri.org/SDRM/HaihaisoftDRMService/getLicense");
        //call.setSOAPActionURI("http://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService/getLicenseRemot");
        call.setSOAPActionURI("http://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService/getLicenseRemote");
       /* license = (String)call.invoke(newObject[]{AdminEmail,WebServiceAuthStr,ProfileID,ClientInfo,RightsID,UserLoginName,UserFullName,GroupID,Message,IP}); */
        Object[] param={newString(AdminEmail),new String(WebServiceAuthStr),newString(ProfileID),new String(ClientInfo),new String(RightsID),newString(UserLoginName),new String(UserFullName),new String(GroupID),newString(Message),new String(IP)};
      license = (String)call.invoke(param);
       out.println("AdminEmail is "+AdminEmail); 
      out.println("WebServiceAuthStr is "+WebServiceAuthStr);     
      out.println("ProfileID is "+ProfileID);     
      out.println("RightsID is "+RightsID);     
      out.println("UserLoginName is "+UserLoginName);     
      out.println("UserFullName is "+UserFullName);     
      out.println("GroupID is "+GroupID);     
      out.println("IP is "+IP);
       
       
        out.println("==========="+Message);
        out.println("==========="+license);
       
  } catch (Exception e) {   
      e.printStackTrace();
  }
  
  if(license == null || license.equals("0")){
        %>
       
        license
       
        <%
    } else {
        session.setAttribute("license", ""+license);
        session.setAttribute("message", Message.value);

        response.sendRedirect("licstore.jsp");
        return ;
        out.println("===");
    }
%>


代码详解:在上面的代码中,我们主要工作是通过
request.getParameter 获取了 profileid,clientinfo,rightsid参数。这3个参数是通过海海软件全能播放器打开加密后的文件时,会用FORM Post的形式提供参数, profileid,clientinfo,rightsid.

在提供了所有正确对应的参数后,通过调用license = (String)call.invoke(param);获取许可证license

当用获得许可证license不是空的时候,我们就可以把license和返回的message消息用session存储。

   session.setAttribute("license", ""+license);
   session.setAttribute("message", Message.value);

并跳转到licstore.jsp将许可证和Message显示出来 LicStore存储页面必须命名为LicStore,如果您采用PHP,JSP语言,则应该是LicStore.php或者LicStore.jsp。大小写不区分。

下面是licstore.jsp的代码:

<%@ page contentType="text/html; charset=gb2312"%>
<html>
    <head>
        <title>licstore</title>
         
         <%= session.getAttribute("license") %>" 
    </head>
   
    <body bgcolor="#e8e8d8" class="content">
         <%= session.getAttribute("Message") %>" 
    </body>
</html>

第三步: 运行 drmlogin.jsp 页. 因为在运行 drmlogin.jsp 页之前您需要DRM-X为您提供ProfileID,ClientInfo,RightsID参数,所以你需要打开你的加密后的文件来运行drmlogin.jsp。要让打开你的加密后的文件来运行drmlogin.jsp,您需要在DRM-X帐户->网站集成参数中设置许可证URL。 如果在运行时返回了Message和License 说明运行成功,否则检查所有参数,重新尝试打开你的加密后的文件来运行drmlogin.jsp。


第四步: 播放DRM-X加密受保护的文件.

打开你的加密后的文件,如果播放器播放按钮可以正常工作,说明许可证已经成功获取。否则请检查所有参数,参数需要和DRM-X帐户设置的完全匹配,重新尝试打开你的加密后的文件来运行drmlogin.jsp。

后续工作:

在您完成以上流程后,您可以在drmlogin.jsp前面添加验证用户名和密码登陆框,在您验证用户登陆信息,或者验证客户帐户余额,可以提示客户在线充值等,在您的系统中多种商业模式操作。

总之,DRM-X为您提供量身定做Web服务,它帮助您灵活的实现多种商业模式。您在验证客户信息后,调用DRM-X获取许可证。您一旦调用DRM-X Web 服务,DRM-X立即为您提供许可证,海海软件播放器就能够立即获取许可证开始播放内容。

感谢您的阅读,如果您遇到任何问题,欢迎您随时联系海海软件-全球数字版权管理产业领导者!



此信息对您有帮助吗?


您可能感兴趣的文章...
在ASP中调用DRM-X XML Web service许可证服务
步骤五:加密音视频文件及如何播放
步骤一:注册您的DRM-X账户
步骤三:创建用户组和用户
在ASP.net C#语言中调用DRM-X XML Web service许可证服务


更多帮助信息请访问: 海海软件百科