签名规则
<h5>简要描述</h5>
<p><strong>第一步</strong> 通过系统获取到的key和apiSecret加上时间戳timestamp和8~32位随机字符串nonce通过以下方式进行md5加密获得sign:
sign=md5(key + nonce + timestamp + apiSecret)
<strong>第二步</strong> 把加密后的sign和key、nonce、timestamp加入请求头header调用接口</p>
<h5>请求头header参数说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>加密后的sign</td>
</tr>
<tr>
<td style="text-align: left;">key</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>系统账号apiKey</td>
</tr>
<tr>
<td style="text-align: left;">nonce</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>8~32位随机字符串</td>
</tr>
<tr>
<td style="text-align: left;">timestamp</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>当前时间戳</td>
</tr>
</tbody>
</table>
<h5>加密和请求示例(java)</h5>
<pre><code> @Test
public void test() {
String key = "系统提供";
String nonce = UUID.randomUUID().toString().replaceAll("-", "");
String timestamp = String.valueOf(System.currentTimeMillis());
String apiSecret = "系统提供";
String signStr = key + nonce + timestamp + apiSecret;
// md5加密获取sign
String sign = MD5Util.MD5(signStr);
// 添加header参数 请勿将apiSecret添加进header
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("key", key);
headers.add("nonce", nonce);
headers.add("sign", sign);
headers.add("timestamp", timestamp);
HttpEntity<?> httpEntity = new HttpEntity<>(headers);
String url = "http://127.0.0.1:8080/outside/interface/flowInfo?iccid={iccid}";
String iccid = "8986061916000688888";
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class, iccid);
String result = responseEntity.getBody();
log.info("响应结果: {}", result);
}</code></pre>