Commit 778011426d2f8590f4ea6d48fbd982ab0a638750
1 parent
d081a2cd
feiyouwen
Showing
1 changed file
with
15 additions
and
4 deletions
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 |