Commit 778011426d2f8590f4ea6d48fbd982ab0a638750

Authored by 费有文
1 parent d081a2cd

feiyouwen

0. 公共组件/1.1 SHA1签名.md
@@ -2,18 +2,29 @@ @@ -2,18 +2,29 @@
2 Title: SHA1签名 2 Title: SHA1签名
3 */ 3 */
4 4
  5 +
  6 +### 系统参数说明 ###
  7 +
  8 +名称 类型 必选 描述
  9 +sp_id string Y 入驻服务开发者(SP)的应用唯一标识码,由开放平台统一分配并提供(一个SP可自行创建多个应用号)
  10 +timestamp int Y 当前Unix时间戳,请保证请求服务器时间正确,有些API接口是有时效性要求的
  11 +ver string Y 协议版本号,统一取值为1.0
  12 +sign string Y 验证码,生成规则详见下面的说明,其中sp_key是由开放平台统一分配并提供的SP私钥。
  13 +
5 ### 签名描述 ### 14 ### 签名描述 ###
6 15
7 签名机制 16 签名机制
8 SHA1 加密 17 SHA1 加密
9 18
10 -1. 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值 对的格式(即 key1=value1&key2=value2…)拼接成字符串 string1,  
11 - 注意:值为空的参数不 参与签名; 19 +1. 对所有传入参数(含系统参数和接口参数)按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值 对的格式。
  20 + (即 key1=value1&key2=value2…)拼接成字符串 string1,
  21 + 注意:值为空的参数不参与签名,所有请求参数值都需要进行URL编码。
12 2. 在 string1 最 后 拼 接 上 key=sp_key得 到 stringSignTemp 字 符 串 , 并 对 stringSignTemp 进行 sha1 运算,再将得到的字符串所有字符转换为大写, 22 2. 在 string1 最 后 拼 接 上 key=sp_key得 到 stringSignTemp 字 符 串 , 并 对 stringSignTemp 进行 sha1 运算,再将得到的字符串所有字符转换为大写,
13 得到 sign 值 signValue。 23 得到 sign 值 signValue。
14 3. 对传入参数中所有键值对的 value 进行 urlencode 转码后重新拼接成字符串 string2。 24 3. 对传入参数中所有键值对的 value 进行 urlencode 转码后重新拼接成字符串 string2。
15 4. 将 sign=signValue拼接到string2后面得到最终的 参数 字符串。 25 4. 将 sign=signValue拼接到string2后面得到最终的 参数 字符串。
16 26
  27 +
17 #### Java代码示例 28 #### Java代码示例
18 29
19 ```java 30 ```java
@@ -23,7 +34,7 @@ SHA1 加密 @@ -23,7 +34,7 @@ SHA1 加密
23 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。 34 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。
24 Map<String, String> map = new HashMap<String,String>(); 35 Map<String, String> map = new HashMap<String,String>();
25 36
26 - map.put("sp_id","iqhpk8pl19"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。 37 + map.put("sp_id","xxxxxxxxxx"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。
27 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1 38 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1
28 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等 39 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等
29 40
@@ -36,7 +47,7 @@ SHA1 加密 @@ -36,7 +47,7 @@ SHA1 加密
36 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。 47 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。
37 Map<String, String> map = new HashMap<String,String>(); 48 Map<String, String> map = new HashMap<String,String>();
38 49
39 - map.put("sp_id","iqhpk8pl19"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。 50 + map.put("sp_id","xxxxxxxxxx"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。
40 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1 51 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1
41 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等 52 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等
42 53