# 3.3 应用请求数据签名生成方法

第三方应用访问勤策服务接口时需要对请求数据做签名处理,工具类需要下载JAVA开发工具包

# Java开发工具包

项目 名称 大小
JAVA开发工具包 openapi_tools-1.2.1.jar (opens new window) 37 KB

# 3.3.1 服务端接口数据签名生成方法

第三方应用访问勤策服务接口时需要对请求数据做签名处理,签名信息包含(access_token-服务商授权码, timestamp-访问时间戳, nonce-随机字符串, echoStr-请求数据体)。
echoStr是接口定义中的请求示例,为JSON格式数据,如获取用户可用积分接口中echoStr示例

{"user_id": "7951571222327321975","user_type":"1"}

签名方法,根据签名数据值自然顺序排序后拼接成一个字符串,然后获取SHA-1签名。示例如下:

	/**
	 * 根据数据生成签名信息(1.根据数据排序 2.排序后拼接成字符串生成SHA-1签名信息)
	 * @param accessToken 服务商授权Token
	 * @param timeStamp 时间戳
	 * @param nonce 随机字符串
	 * @param echoStr 请求数据体
	 * @return 签名信息
	 * @throws Exception
	 */
      String sign = OAuth2Utils.makeSignature(accessToken, timeStamp, nonce, echoStr);

# 3.3.2 JS-SDK 数据签名生成方法

第三方应用访问勤策客户端提供的JS-SDK接口时需要生成签名信息,签名信息需要jsapi_ticket、noncestr、timestamp、url信息
注意:请求的URL中需要将URL中'?'以及后面的参数和'#'以及后面的锚点相关部分去除。示例如下:

    /**
 * 获取JSAPI签名信息
 * @param url 当前页面请求URL
 * @param jsapi_ticket ticket
 * @param noncestr 随机字符串
 * @param timestamp 时间戳
 * @return
 * @throws Exception
 */
String sign = OAuth2JSSDKUtils.getJsApiSignature(url, jsapi_ticket, noncestr, timestamp);