isp_download方法

服务请求地址

http://服务器IP地址/ISPWebService/upDownLoad?wsdl


方法原型

public String isp_download (Long ispId, String userName, String randVal, String pwdHash , int hashAlgorithm)

 

方法描述

通过该方法,企业侧系统可以下载部级系统或省管局系统下发的备案管理数据文件。

企业侧系统在调用该接口方法之前,首先要产生长度为20个字节的随机字符串(数字和大、小写字母),并将口令与该随机字符串连接(例如,口令是字符串“1234567890”,生成的随机字符串是 “abcdefghij”,那么连接后的结果是字符串“1234567890abcdefghij”)。将连接后的结果转换为GBK编码的二进制数据,使用hashAlgorithm定义的哈希算法进行哈希计算,得到参数pwdHash的值作为认证信息。

部级系统或省局系统接收到企业侧系统的下载请求后,将需要下发给该企业的备案管理数据文件(文件格式参见“企业下载数据格式.xsd”)依次进行如下处理:

1) 对XML数据文件使用指定的压缩格式进行压缩;

2) 对压缩后的信息使用哈希算法计算哈希值,然后对哈希值进行base64编码运算;

3) 如需加密下载,则对压缩后的信息使用指定的加密算法加密,然后对加密结果进行base64编码运算;如不加密下载,则直接对压缩后的信息进行base64编码运算形成beianInfo。

部级系统或省局系统将上述处理后的哈希值、编码运算后的加密(或者明文)结果、哈希算法、加密算法、压缩格式返回给企业系统(详见“企业下载数据格式.xsd”)。

注:

1.     返回值XML流中的标签“encryptAlgorithm”为0时,表示“beianInfo”标签的内容是不加密的;为1时,表示“beianInfo”标签的内容经过AES加密算法的加密,加密模式使用CBC模式,补码方式采用PKCS5Padding,密钥偏移量由部级系统、省局系统生成的字符串,如“0102030405060708”;

2.  返回值XML流中的标签“hashAlgorithm”为0时,表示哈希算法是MD5;

3.  返回值XML流中的标签“compressionFormat”为0时,表示使用Zip压缩格式进行压缩;

4.  本方法中数据加解密、计算哈希值和压缩/解压缩是指对数据字节流的加解密、计算哈希值和压缩/解压缩。

 

参数描述

本方法共使用5个参数,各项参数的描述如下表所示:

参数名称

参数类型

参数描述

ispId

长整型

接入服务提供者的标识,可在部/省局系统的公共查询中查询得到

userName

字符串

用户名,由企业所在省管局(或部管局)维护管理

randVal

字符串

企业侧系统调用该方法时生成的随机字符串,长度是20字节

pwdHash

字符串

使用指定的哈希算法对用户密码和随机字符串进行哈希运算,然后进行base64编码运算得到的结果,用户口令由企业所在省管局(或部管局)维护管理

hashAlgorithm

整型

哈希算法

hashAlgorithm描述如下表所示:

算法标识

算法描述

0

MD5哈希算法


返回值

该方法返回一个XML数据流(数据格式详见文件“企业下载数据方法调用返回数据格式.xsd”),其中描述了本次操作的结果代码、结果描述。

如果成功,返回以下信息:

<?xml version="1.0" encoding="utf-8"?>

<return> 
  <msg_code>0</msg_code>  
  <msg>操作成功</msg>  
  <fileInfos> 
    <hashAlgorithm>哈希算法</hashAlgorithm>  
    <compressionFormat>压缩格式</compressionFormat>  
    <encryptAlgorithm>加密算法</encryptAlgorithm>  
    <return_FileName>省局系统的备案数据文件名</return_FileName>  
    <beianInfo>备案信息内容</beianInfo>  
    <beianInfoHash>备案信息的哈希值</beianInfoHash> 
  </fileInfos> 
</return>


企业侧系统收到上述数据后,首先对beianInfo信息进行base64解码,接着对解码后的信息使用encryptAlgorithm指定的加密算法解密,在得到备案信息的压缩信息后,再使用hashAlgorithm指定的哈希算法计算哈希值,然后与beianInfoHash信息base64解码后的信息进行比较。如果比较一致,那么备案信息的完整性得到保证;如果比较不一致,则哈希值验证未通过,备案数据不完整。最后,在通过完整性校验后,使用compressionFormat指定的压缩格式对压缩后的信息进行解压缩,得到备案数据信息。

如果操作错误,返回以下信息:

<?xml version="1.0" encoding="utf-8"?>

<return> 
  <msg_code>x</msg_code>  
  <msg>错误描述</msg> 
</return>


企业侧系统收到备案信息文件后,如果数据文件可以通过完整性校验,并进行解压缩,则应该调用本接口规范中第3-3-3节的“isp_downloadack”方法,将已正确接收到该文件的信息回执发送给部级系统或省局系统。

msg_code参见第3-4节的接口返回状态msg_code代码表。

对于部级系统或省局系统处理企业上报的备案数据文件所产生的错误信息,均以数据文件下载形式返回给企业。数据中的错误信息详见3-5节数据处理结果代码表。