文档
diff --git "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\205\205\345\200\274\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\205\205\345\200\274\346\216\245\345\217\243\346\226\207\346\241\243.md"
index bf70244..df0d82b 100644
--- "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\205\205\345\200\274\346\216\245\345\217\243\346\226\207\346\241\243.md"
+++ "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\205\205\345\200\274\346\216\245\345\217\243\346\226\207\346\241\243.md"
@@ -5,43 +5,248 @@
---
-## 1.1 充值初始化 ##
+## 1.1文档说明 ##
-### 请求URL: ###
+本文档用于描述了一卡通对第三方应用提供的通用支付api接口文档,供第三方系统(前置和应用)对接参考。
-- `http://xx.com/api/user/register`
+## 1.2约定 ##
-### 请求方式: ###
+1. 传输编码统一为utf-8
+2. RSA 加密算法为本接口采用的非对称加密算法,`SIGN_ALGORITHMS ="SHA1WithRSA"`;
+3. RSA公钥由本系统提供,本系统返回信息的签名数据,第三方系统得到后通过公钥校验算法,验证返回数据的合法性
+4. HMAC加密算法为用户请求本系统采用的加密算法,`SIGN_ALGORITHMS ="HMAC-SHA1"`;
+5. 具体签名生成参考后面的签名章节
+6. retcode等于0表示成功,非0表示失败,失败具体信息查看retmsg
+7. 密码加密的原始串为timestamp:pwd
+
+
+## 2.1 通用账户查询 ##
+
+**请求URL:**
+
+- `https://ip:port/epayapi/services/thirdparty/common/accountquery`
+
+**请求方式/格式:**
- POST
+- application/x-www-form-urlencoded
-### 请求参数: ###
+**请求参数:**
-|参数名 | 必选 | 类型 | 说明 |
+|参数名 | 类型 | 必选 | 说明 |
|-----|------|-----|------|
-|id| 是 |String|系统参数id|
-|name|是|String|用户名|
-|name|是|String|用户名|
+|partner_id|String|是 |本系统分配给各个接入应用的合作伙伴id号|
+|stuempno|String|是| 查询对象的学号|
+|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
+|sign|String|是| 签名|
+|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
+**请求内容示例:**
+```html
+URI:https://ip:port/epayapi/services/thirdparty/common/accountquery
-### 返回示例 ###
+partner_id:10000
+stuempno:09893092
+timestamp:20150119130901
+sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+sign_method:HMAC
+```
- {
- "error_code": 0,
- "data": {
- "uid": "1",
- "username": "12154545",
- "name": "吴系挂",
- "groupid": 2 ,
- "reg_time": "1436864169",
- "last_login_time": "0",
- }
- }
+**返回示例:**
-### 返回参数说明 ###
+- 成功
+
+```json
+{
+ "retcode":"0",
+ "retmsg":"查询成功",
+ "stuempno":"09893092",
+ "username":"王二小",
+ "balance":4850,
+ "cardno":103920299,
+ "status":"正常",
+ "timestamp":"20160606150902",
+ "sign":"hjAtBGygGjFyOKEZmWdxi1tk51/xqLYTr5tm2+zQVfD1RHRzGVC9GNm4ZaXnUsHnu5o3kAZ4U32m0YNiSFpncs0pl1AnnCf1n2hhn39ruABsvD//GzkEINHjyHsnxBr44G2UhyNxplUj+s7s0a7ggjbiMk+BYC3u7VkU9/l+kZOTkEyqs+wZKumfByMZGvKVkY2c2Nr67RaSWd7bsfOJ6HYw2spvu3ptAo2RTrfCxZ0Kn5DcSDm4cagzPMZSHxB8isqqNGrdUaAU0wzzC7704iA5zze//SvCqpCJfYt0OrHOiJEN5kw1d4KESrKGMG6bezlXzAp0LbNlhl+HwZJcag==",
+ "sign_method": "RSA"
+}
+
+```
+
+- 失败
+
+```json
+{
+ "retcode":"1",
+ "retmsg":"账户不存在",
+ "timestamp":"20160606150902",
+ "sign": "hjAtBGygGjFyOKEZmWdxi1tk51/xqLYTr5tm2+zQVfD1RHRzGVC9GNm4ZaXnUsHnu5o3kAZ4U32m0YNiSFpncs0pl1AnnCf1n2hhn39ruABsvD//GzkEINHjyHsnxBr44G2UhyNxplUj+s7s0a7ggjbiMk+BYC3u7VkU9/l+kZOTkEyqs+wZKumfByMZGvKVkY2c2Nr67RaSWd7bsfOJ6HYw2spvu3ptAo2RTrfCxZ0Kn5DcSDm4cagzPMZSHxB8isqqNGrdUaAU0wzzC7704iA5zze//SvCqpCJfYt0OrHOiJEN5kw1d4KESrKGMG6bezlXzAp0LbNlhl+HwZJcag==",
+ "sign_method":"RSA"
+}
+
+```
+
+**返回参数说明:**
|参数名 | 类型 | 说明 |
|-----|-----|------|
-|id|String|系统参数id|
-|name|String|用户名|
-|name|String|用户名|
\ No newline at end of file
+|retcode|String|返回码(0=成功,其他为失败)|
+|retmsg|String|返回消息|
+|stuempno|String|学号|
+|username|String|姓名|
+|balance|Integer|余额(分)|
+|cardno|Integer|卡号|
+|status|String|状态(正常)|
+
+## 2.2 通用充值 ##
+
+**请求URL:**
+
+- `https://ip:port/epayapi/services/thirdparty/common/recharge`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+|参数名 | 类型 | 必选 | 说明 |
+|-----|------|-----|------|
+|partner_id|String|是 |本系统分配给各个接入应用的合作伙伴id号|
+|stuempno|String|是| 发起消费对象的学号|
+|tradeno|String(32)|是|第三方系统唯一流水号|
+|tradename|String(60)|是|交易名称|
+|amount|Integer|是|充值金额(分)|
+|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
+|sign|String|是| 签名|
+|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
+
+**请求内容示例:**
+```html
+URI:https://ip:port/epayapi/services/thirdparty/common/pay
+
+partner_id:10000
+stuempno:09893092
+tradeno:20160607000001
+trandename:微信充值
+amount:2000
+timestamp:20150119130901
+sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+sign_method:HMAC
+```
+
+
+**返回示例:**
+
+- 成功
+
+```json
+{
+ "retcode":"0",
+ "retmsg":"充值成功"
+ "tradeno":"20160607000001",
+ "balance":4850,
+ "refno":"20160605190200000001",
+ "timestamp":"20160606150902",
+ "sign":"hjAtBGygGjFyOKEZmWdxi1tk51/xqLYTr5tm2+zQVfD1RHRzGVC9GNm4ZaXnUsHnu5o3kAZ4U32m0YNiSFpncs0pl1AnnCf1n2hhn39ruABsvD//GzkEINHjyHsnxBr44G2UhyNxplUj+s7s0a7ggjbiMk+BYC3u7VkU9/l+kZOTkEyqs+wZKumfByMZGvKVkY2c2Nr67RaSWd7bsfOJ6HYw2spvu3ptAo2RTrfCxZ0Kn5DcSDm4cagzPMZSHxB8isqqNGrdUaAU0wzzC7704iA5zze//SvCqpCJfYt0OrHOiJEN5kw1d4KESrKGMG6bezlXzAp0LbNlhl+HwZJcag==",
+ "sign_method": "RSA"
+}
+
+```
+
+- 失败
+
+```json
+{
+ "retcode":"1",
+ "retmsg":"账户状态错误",
+ "tradeno":"20160607000001",
+ "timestamp":"20160606150902",
+ "sign": "hjAtBGygGjFyOKEZmWdxi1tk51/xqLYTr5tm2+zQVfD1RHRzGVC9GNm4ZaXnUsHnu5o3kAZ4U32m0YNiSFpncs0pl1AnnCf1n2hhn39ruABsvD//GzkEINHjyHsnxBr44G2UhyNxplUj+s7s0a7ggjbiMk+BYC3u7VkU9/l+kZOTkEyqs+wZKumfByMZGvKVkY2c2Nr67RaSWd7bsfOJ6HYw2spvu3ptAo2RTrfCxZ0Kn5DcSDm4cagzPMZSHxB8isqqNGrdUaAU0wzzC7704iA5zze//SvCqpCJfYt0OrHOiJEN5kw1d4KESrKGMG6bezlXzAp0LbNlhl+HwZJcag==",
+ "sign_method":"RSA"
+}
+
+```
+
+**返回参数说明:**
+
+|参数名 | 类型 | 说明 |
+|-----|-----|------|
+|retcode|String|返回码(0=成功,其他为失败)|
+|retmsg|String|返回消息|
+|tradeno|String|第三方流水号|
+|refno|String|本系统生成流水号|
+|balance|Integer|账户余额(分)|
+
+
+## 附录A-用户请求HMAC签名算法 ##
+
+
+- 签名方式:`hmac-sha1`
+
+- 签名密钥由本系统统一线下提供
+
+
+- **签名校验的通用步骤如下:**
+
+ **第一步,**设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
+
+ **特别注意以下重要规则:**
+
+
+- 参数名ASCII码从小到大排序(字典序);
+
+
+- 如果参数的值为空不参与签名;
+
+
+- 参数名区分大小写;
+
+
+- 传送的sign参数不参与签名,用该sign值作校验。
+
+ **第二步,**用密钥secretkey对stringA字符串,进行hmac-sha1签名,得到sign值signValue。signValue最后采用十六进制小写hex编码生成签名字符串。
+
+
+## 附录B-服务端返回数据RSA签名校验算法 ##
+
+- 签名方式:`SHA1withRSA`
+- 签名校验的公钥key为本系统统一线下提供。
+
+- **签名校验的通用步骤如下:**
+
+**第一步,**设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
+
+**特别注意以下重要规则:**
+
+
+- 参数名ASCII码从小到大排序(字典序);
+
+
+- 如果参数的值为空不参与签名;
+
+
+- 参数名区分大小写;
+
+
+- 传送的sign参数不参与签名,用该sign值作校验。
+
+
+**第二步,**对sign值进行base64解码,用本系统提供的公钥key对sign签名值解码后的数据基于stringA字符串,进行SHA1withRSA签名验证
+
+> 举例:
+
+
+假设传送的参数如下:
+```
+retcode:1
+retmsg:账户余额不足
+timestamp:20160513155100
+sign_mehtod:RSA
+```
+
+对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
+```
+retcode=1&retmsg=账户余额不足×tamp=20160513155100&sign_mehtod="RSA"
+```
+
diff --git "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\257\271\346\216\245\345\215\217\350\256\256\345\217\212\350\256\272\350\257\201\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\257\271\346\216\245\345\215\217\350\256\256\345\217\212\350\256\244\350\257\201\346\216\245\345\217\243\346\226\207\346\241\243.md"
similarity index 100%
rename from "source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\257\271\346\216\245\345\215\217\350\256\256\345\217\212\350\256\272\350\257\201\346\216\245\345\217\243\346\226\207\346\241\243.md"
rename to "source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\345\257\271\346\216\245\345\215\217\350\256\256\345\217\212\350\256\244\350\257\201\346\216\245\345\217\243\346\226\207\346\241\243.md"
diff --git "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\346\225\260\346\215\256\345\257\271\346\216\245\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\346\225\260\346\215\256\345\257\271\346\216\245\346\216\245\345\217\243\346\226\207\346\241\243.md"
new file mode 100644
index 0000000..6fac146
--- /dev/null
+++ "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\346\225\260\346\215\256\345\257\271\346\216\245\346\216\245\345\217\243\346\226\207\346\241\243.md"
@@ -0,0 +1,241 @@
+---
+title: 一卡通v5第三方数据对接接口文档
+date: 2016-06-21 13:54:26
+tags:
+
+---
+
+## 1.1文档说明 ##
+
+本文档用于描述了一卡通对第三方应用提供的通用支付api接口文档,供第三方系统(前置和应用)对接参考。
+
+## 1.2约定 ##
+
+1. 传输编码统一为utf-8
+2. RSA 加密算法为本接口采用的非对称加密算法,`SIGN_ALGORITHMS ="SHA1WithRSA"`;
+3. RSA公钥由本系统提供,本系统返回信息的签名数据,第三方系统得到后通过公钥校验算法,验证返回数据的合法性
+4. HMAC加密算法为用户请求本系统采用的加密算法,`SIGN_ALGORITHMS ="HMAC-SHA1"`;
+5. 具体签名生成参考后面的签名章节
+6. retcode等于0表示成功,非0表示失败,失败具体信息查看retmsg
+7. 密码加密的原始串为timestamp:pwd
+
+
+## 2.1 通用卡、账户信息查询-单用户接口 ##
+
+**请求URL:**
+
+- `https://ip:port/epayapi/services/thirdparty/common/single/cardcustinfo`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+|参数名 | 类型 | 必选 | 说明 |
+|-----|------|-----|------|
+|partner_id|String|是 |本系统分配给各个接入应用的合作伙伴id号|
+|stuempno|String|是| 查询对象的学号|
+|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
+|sign|String|是| 签名|
+|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
+
+**请求内容示例:**
+```html
+URI:https://ip:port/epayapi/services/thirdparty/common/accountquery
+
+partner_id:10000
+stuempno:09893092
+timestamp:20150119130901
+sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+sign_method:HMAC
+```
+
+**返回示例:**
+
+- 成功
+
+```json
+{
+ "retcode":"0",
+ "retmsg":"查询成功",
+ "stuempno":"09893092",
+ "username":"王二小",
+ "balance":4850,
+ "cardno":103920299,
+ "status":"正常"
+}
+
+```
+
+- 失败
+
+```json
+{
+ "retcode":"1",
+ "retmsg":"账户不存在"
+}
+
+```
+
+**返回参数说明:**
+
+|参数名 | 类型 | 说明 |
+|-----|-----|------|
+|retcode|String|返回码(0=成功,其他为失败)|
+|retmsg|String|返回消息|
+|stuempno|String|学号|
+|username|String|姓名|
+|balance|Integer|余额(分)|
+|cardno|Integer|卡号|
+|status|String|状态(正常)|
+
+
+## 2.2 通用卡、账户信息查询-批量接口 ##
+
+**请求URL:**
+
+- `https://ip:port/epayapi/services/thirdparty/common/batch/cardcustinfo`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+|参数名 | 类型 | 必选 | 说明 |
+|-----|------|-----|------|
+|partner_id|String|是 |本系统分配给各个接入应用的合作伙伴id号|
+|cardupdtime|String|否| 卡最后更新时间(二选一)|
+|custupdtime|String|否| 客户最后更新时间(二选一)|
+|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
+|sign|String|是| 签名|
+|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
+
+**请求内容示例:**
+```html
+URI:https://ip:port/epayapi/services/thirdparty/common/batch/cardcustinfo
+
+partner_id:10000
+cardupdtime:20150829145802
+timestamp:20150119130901
+sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+sign_method:HMAC
+```
+
+**返回示例:**
+
+- 成功
+
+```json
+{
+ "retcode":"0",
+ "retmsg":"查询成功",
+ "data":[
+ {
+ "cardno":1001
+ }
+ ]
+}
+
+```
+
+- 失败
+
+```json
+{
+ "retcode":"1",
+ "retmsg":"查询失败"
+
+```
+
+**返回参数说明:**
+
+|参数名 | 类型 | 说明 |
+|-----|-----|------|
+|retcode|String|返回码(0=成功,其他为失败)|
+|retmsg|String|返回消息|
+|stuempno|String|学号|
+|username|String|姓名|
+|balance|Integer|余额(分)|
+|cardno|Integer|卡号|
+|status|String|状态(正常)|
+
+## 2.3 通用账户流水查询 ##
+
+**请求URL:**
+
+- `https://ip:port/epayapi/services/thirdparty/common/getbilldata`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+|参数名 | 类型 | 必选 | 说明 |
+|-----|------|-----|------|
+|partner_id|String|是 |本系统分配给各个接入应用的合作伙伴id号|
+|stuempno|String|是| 查询对象的学号|
+|pageno|String|否| 页码,默认1,范围1-100|
+|pagesize|String|否| 每页行数,默认100,范围10-500|
+|startdate|String|是| 开始时间 格式yyyyMMdd 最多3个月前|
+|enddate|String|是| 结束日期 格式yyyyMMdd 最大跨度1个月|
+|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
+|sign|String|是| 签名|
+|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
+
+**请求内容示例:**
+```html
+URI:https://ip:port/epayapi/services/thirdparty/common/batch/cardcustinfo
+
+partner_id:10000
+pageno:2
+pagesize:10
+startdate:20150829
+enddate:20150929
+timestamp:20150119130901
+sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+sign_method:HMAC
+```
+
+**返回示例:**
+
+- 成功
+
+```json
+{
+ "retcode":"0",
+ "retmsg":"查询成功",
+ "data":[
+ {
+ "cardno":1001
+ }
+ ]
+}
+
+```
+
+- 失败
+
+```json
+{
+ "retcode":"1",
+ "retmsg":"查询失败"
+
+```
+
+**返回参数说明:**
+
+|参数名 | 类型 | 说明 |
+|-----|-----|------|
+|retcode|String|返回码(0=成功,其他为失败)|
+|retmsg|String|返回消息|
+|stuempno|String|学号|
+|username|String|姓名|
+|balance|Integer|余额(分)|
+|cardno|Integer|卡号|
+|status|String|状态(正常)|
\ No newline at end of file
diff --git "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\346\266\210\350\264\271\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\346\266\210\350\264\271\346\216\245\345\217\243\346\226\207\346\241\243.md"
index 43f41cc..6c2e245 100644
--- "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\346\266\210\350\264\271\346\216\245\345\217\243\346\226\207\346\241\243.md"
+++ "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\346\266\210\350\264\271\346\216\245\345\217\243\346\226\207\346\241\243.md"
@@ -5,19 +5,33 @@
---
+## 1.1文档说明 ##
-## 1. 通用账户查询 ##
+本文档用于描述了一卡通对第三方应用提供的通用支付api接口文档,供第三方系统(前置和应用)对接参考。
+
+## 1.2约定 ##
+
+1. 传输编码统一为utf-8
+2. RSA 加密算法为本接口采用的非对称加密算法,`SIGN_ALGORITHMS ="SHA1WithRSA"`;
+3. RSA公钥由本系统提供,本系统返回信息的签名数据,第三方系统得到后通过公钥校验算法,验证返回数据的合法性
+4. HMAC加密算法为用户请求本系统采用的加密算法,`SIGN_ALGORITHMS ="HMAC-SHA1"`;
+5. 具体签名生成参考后面的签名章节
+6. retcode等于0表示成功,非0表示失败,失败具体信息查看retmsg
+7. 密码加密的原始串为timestamp:pwd
+
+
+## 2.1 通用账户查询 ##
**请求URL:**
-- `https://ip:port/epayapi/services/third/common/accountquery`
+- `https://ip:port/epayapi/services/thirdparty/common/accountquery`
**请求方式/格式:**
- POST
- application/x-www-form-urlencoded
-**请求参数: **
+**请求参数:**
|参数名 | 类型 | 必选 | 说明 |
|-----|------|-----|------|
@@ -27,9 +41,9 @@
|sign|String|是| 签名|
|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
-**请求内容示例: **
+**请求内容示例:**
```html
-URI:https://ip:port/epayapi/services/third/common/accountquery
+URI:https://ip:port/epayapi/services/thirdparty/common/accountquery
partner_id:10000
stuempno:09893092
@@ -84,18 +98,18 @@
|status|String|状态(正常)|
-## 2. 通用支付 ##
+## 2.2 通用支付 ##
**请求URL:**
-- `https://ip:port/epayapi/services/third/common/pay`
+- `https://ip:port/epayapi/services/thirdparty/common/pay`
**请求方式/格式:**
- POST
- application/x-www-form-urlencoded
-**请求参数: **
+**请求参数:**
|参数名 | 类型 | 必选 | 说明 |
|-----|------|-----|------|
@@ -108,9 +122,9 @@
|sign|String|是| 签名|
|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
-**请求内容示例: **
+**请求内容示例:**
```html
-URI:https://ip:port/epayapi/services/third/common/pay
+URI:https://ip:port/epayapi/services/thirdparty/common/pay
partner_id:10000
stuempno:09893092
@@ -164,3 +178,80 @@
|tradeno|String|第三方流水号|
|refno|String|本系统生成流水号|
|balance|Integer|余额(分)|
+
+
+## 附录A-用户请求HMAC签名算法 ##
+
+
+- 签名方式:`hmac-sha1`
+
+- 签名密钥由本系统统一线下提供
+
+
+- **签名校验的通用步骤如下:**
+
+ **第一步,**设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
+
+ **特别注意以下重要规则:**
+
+
+- 参数名ASCII码从小到大排序(字典序);
+
+
+- 如果参数的值为空不参与签名;
+
+
+- 参数名区分大小写;
+
+
+- 传送的sign参数不参与签名,用该sign值作校验。
+
+ **第二步,**用密钥secretkey对stringA字符串,进行hmac-sha1签名,得到sign值signValue。signValue最后采用十六进制小写hex编码生成签名字符串。
+
+
+## 附录B-服务端返回数据RSA签名校验算法 ##
+
+- 签名方式:`SHA1withRSA`
+- 签名校验的公钥key为本系统统一线下提供。
+
+- **签名校验的通用步骤如下:**
+
+**第一步,**设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
+
+**特别注意以下重要规则:**
+
+
+- 参数名ASCII码从小到大排序(字典序);
+
+
+- 如果参数的值为空不参与签名;
+
+
+- 参数名区分大小写;
+
+
+- 传送的sign参数不参与签名,用该sign值作校验。
+
+
+**第二步,**对sign值进行base64解码,用本系统提供的公钥key对sign签名值解码后的数据基于stringA字符串,进行SHA1withRSA签名验证
+
+> 举例:
+
+
+假设传送的参数如下:
+```
+retcode:1
+retmsg:账户余额不足
+timestamp:20160513155100
+sign_mehtod:RSA
+```
+
+对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
+```
+retcode=1&retmsg=账户余额不足×tamp=20160513155100&sign_mehtod="RSA"
+```
+
+
+
+
+
diff --git "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\350\272\253\344\273\275\350\256\244\350\257\201\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\350\272\253\344\273\275\350\256\244\350\257\201\346\216\245\345\217\243\346\226\207\346\241\243.md"
deleted file mode 100644
index ec491e2..0000000
--- "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\254\254\344\270\211\346\226\271\350\272\253\344\273\275\350\256\244\350\257\201\346\216\245\345\217\243\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: 一卡通v5第三方身份认证接口文档
-date: 2016-06-21 13:54:26
-tags:
-
----
-
-## 1.1 用户信息 ##
-
-### 请求URL: ###
-
-- `http://xx.com/api/user/register`
-
-### 请求方式: ###
-
-- POST
-
-### 请求参数: ###
-
-|参数名 | 必选 | 类型 | 说明 |
-|-----|------|-----|------|
-|id| 是 |String|系统参数id|
-|name|是|String|用户名|
-|name|是|String|用户名|
-
-
-### 返回示例 ###
-
- {
- "error_code": 0,
- "data": {
- "uid": "1",
- "username": "12154545",
- "name": "吴系挂",
- "groupid": 2 ,
- "reg_time": "1436864169",
- "last_login_time": "0",
- }
- }
-
-### 返回参数说明 ###
-
-|参数名 | 类型 | 说明 |
-|-----|-----|------|
-|id|String|系统参数id|
-|name|String|用户名|
-|name|String|用户名|
\ No newline at end of file