Commit 778011426d2f8590f4ea6d48fbd982ab0a638750

Authored by 费有文
1 parent d081a2cd

feiyouwen

0. 公共组件/1.1 SHA1签名.md
... ... @@ -2,18 +2,29 @@
2 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 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 22 2. 在 string1 最 后 拼 接 上 key=sp_key得 到 stringSignTemp 字 符 串 , 并 对 stringSignTemp 进行 sha1 运算,再将得到的字符串所有字符转换为大写,
13 23 得到 sign 值 signValue。
14 24 3. 对传入参数中所有键值对的 value 进行 urlencode 转码后重新拼接成字符串 string2。
15 25 4. 将 sign=signValue拼接到string2后面得到最终的 参数 字符串。
16 26  
  27 +
17 28 #### Java代码示例
18 29  
19 30 ```java
... ... @@ -23,7 +34,7 @@ SHA1 加密
23 34 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。
24 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 38 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1
28 39 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等
29 40  
... ... @@ -36,7 +47,7 @@ SHA1 加密
36 47 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。
37 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 51 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1
41 52 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等
42 53  
... ...