第三方卡挂失接口
diff --git "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\345\234\210\345\255\230\345\257\271\346\216\245\345\211\215\347\275\256\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\345\234\210\345\255\230\345\257\271\346\216\245\345\211\215\347\275\256\346\216\245\345\217\243\346\226\207\346\241\243.md"
index 8953023..792c4cd 100644
--- "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\345\234\210\345\255\230\345\257\271\346\216\245\345\211\215\347\275\256\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\345\234\210\345\255\230\345\257\271\346\216\245\345\211\215\347\275\256\346\216\245\345\217\243\346\226\207\346\241\243.md"
@@ -18,7 +18,7 @@
## 约定 ##
1. 传输编码统一为utf-8
-2. 请求数据都用HAMC签名加密,收到请求参数后可验证数据正确性,秘钥共同约定。**`SIGN_ALGORITHMS ="HmacSHA1"`**;
+2. 请求数据都用RSA签名加密,收到请求参数后可验证数据正确性,秘钥共同约定。**`SIGN_ALGORITHMS ="SHA1withRSA"`**;
3. **retcode** 等于"0"(字符串)表示成功,其他表示失败,失败具体信息查看 **retmsg**
4. **{bank}** 为银行标识,区别不同的银行圈存
@@ -117,7 +117,7 @@
- `termid` - 终端编号(可选)
- `tradetime` - 请求时间, 格式yyyyMMddHHmmss
- `timeout` - (可选)前置机与银行通讯的超时时间,单位秒,范围 1 ~ 90 , 默认值为10
-- `sign` 签名。除sign的非空字段按上述顺序拼接进行签名加密,如(bankcardno+refno+custid+stuempno+idtype+idno+amount+termid+ tradetime+timeout)。
+- `sign` 签名。除sign的非空字段按上述顺序拼接进行签名加密,如(bankcardno+refno+stuempno+custid+idtype+idno+amount+termid+ tradetime+timeout)。
* **返回**
- `retcode` - "0" 标识操作成功,其余为异常情况
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"
index b41dbbb..2c1f9fe 100644
--- "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"
@@ -584,7 +584,7 @@
**请求URL:**
-- `https://ip:port/epayapi/services/thirdparty/common/getbilldata`
+- `http(s)://ip:port/epayapi/services/thirdparty/common/getbilldata`
**请求方式/格式:**
@@ -603,20 +603,21 @@
|enddate|String|是| 结束日期 格式yyyyMMdd|
|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
|sign|String|是| 签名|
-|sign_method|String|是|参数的加密方法选择,可选值是:HMAC 加密方式为HAMC-SHA1|
+|sign_method|String|是| HMAC 加密方式为HAMC-SHA1|
**请求内容示例:**
-```html
-URI:https://ip:port/epayapi/services/thirdparty/common/getbilldata
+```
-partner_id:10000
-pageno:1
-pagesize:10
-startdate:20150829
-enddate:20150929
-timestamp:20150119130901
-sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
-sign_method:HMAC
+- URI:http(s)://ip:port/epayapi/services/thirdparty/common/getbilldata
+- partner_id:10000
+- pageno:1
+- pagesize:10
+- startdate:20150829
+- enddate:20150929
+- timestamp:20150119130901
+- sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+- sign_method:HMAC
+
```
**返回示例:**
@@ -625,65 +626,112 @@
```json
{
-{
"retcode": "0",
"retmsg": "查询成功",
"data": {
- "totalCount": 3,
+ "totalCount": 11,
"pageSize": 10,
"pageNo": 1,
"list": [
{
- "refno": "20151015111200029503",
- "paytime": "20151015111223",
- "billname": "悦校现金补助",
- "amount": 283,
- "billtype": "下发补助",
+ "refno": "20170809160440168058",
+ "paytime": "20170809160449",
+ "billname": "IC卡消费",
+ "amount": 1,
+ "billtype": "联机刷卡消费",
"billstatus": 2,
- "expiredate": null,
- "tradetype": "1",
- "tradecode": "3130"
+ "tradetype": "2",
+ "tradecode": "6630"
},
{
- "refno": "20151013191000028629",
- "paytime": "20151013191031",
- "billname": "悦校现金补助",
- "amount": 283,
- "billtype": "下发补助",
+ "refno": "20170809103401168050",
+ "paytime": "20170809103413",
+ "billname": "IC卡消费",
+ "amount": 1,
+ "billtype": "联机刷卡消费",
"billstatus": 2,
- "expiredate": null,
- "tradetype": "1",
- "tradecode": "3130"
+ "tradetype": "2",
+ "tradecode": "6630"
},
{
- "refno": "20151013184200027918",
- "paytime": "20151013184230",
- "billname": "悦校现金补助",
- "amount": 283,
- "billtype": "下发补助",
+ "refno": "20170809101226168047",
+ "paytime": "20170809101238",
+ "billname": "IC卡消费",
+ "amount": 1,
+ "billtype": "联机刷卡消费",
"billstatus": 2,
- "expiredate": null,
+ "tradetype": "2",
+ "tradecode": "6630"
+ },
+ {
+ "refno": "20170809101217168046",
+ "paytime": "20170809101229",
+ "billname": "IC卡消费",
+ "amount": 1,
+ "billtype": "联机刷卡消费",
+ "billstatus": 2,
+ "tradetype": "2",
+ "tradecode": "6630"
+ },
+ {
+ "refno": "20170809100854168045",
+ "paytime": "20170809100905",
+ "billname": "IC卡消费",
+ "amount": 1,
+ "billtype": "联机刷卡消费",
+ "billstatus": 2,
+ "tradetype": "2",
+ "tradecode": "6630"
+ },
+ {
+ "refno": "20170809100845168043",
+ "paytime": "20170809100824",
+ "billname": "IC卡消费",
+ "amount": 1,
+ "billtype": "联机刷卡消费",
+ "billstatus": 2,
+ "tradetype": "2",
+ "tradecode": "6630",
+ },
+ {
+ "refno": "20170809100845168044",
+ "paytime": "20170809100824",
+ "billname": "IC卡消费",
+ "amount": 1,
+ "billtype": "联机刷卡消费撤销",
+ "billstatus": 2,
"tradetype": "1",
- "tradecode": "3130"
+ "tradecode": "6632"
+ },
+ {
+ "refno": "20170807145900002705",
+ "paytime": "20170807145958",
+ "billname": "现金充值",
+ "amount": 270,
+ "billtype": "钱包充值",
+ "billstatus": 2,
+ "tradetype": "1",
+ "tradecode": "6500"
}
],
"firstResult": 0,
- "totalPage": 1,
- "lastPage": true,
- "nextPage": 1,
- "prePage": 1,
- "firstPage": true
+ "totalPage": 2,
+ "firstPage": true,
+ "lastPage": false,
+ "nextPage": 2,
+ "prePage": 1
}
}
-
```
- 失败
```json
{
- "retcode":"1",
- "retmsg":"查询失败"
+ "retcode": "304",
+ "retmsg": "签名验证失败",
+ "data": null
+}
```
@@ -693,9 +741,180 @@
|-----|-----|------|
|retcode|String|返回码(0=成功,其他为失败)|
|retmsg|String|返回消息|
-|refno|String|交易参考号|
-|billname|String|交易名称|
+|data|list|流水明细集合|
+
+**流水明细说明:**
+
+|参数名 | 类型 | 说明 |
+|-----|-----|------|
+| refno |String|交易参考号|
+| paytime|String|交易时间 yyyyMMddhh24miss|
+| billname|String |交易名称 |
+|amount|Integer|交易金额(元)|
|billtype|String|交易类型|
-|amount|Integer|交易金额(分)|
|billstatus|String|状态 2-成功 3-失败|
-|tradetype|String|交易方向 1-充值 2-消费|
+| tradetype |String|交易方向 1-充值 2-消费|
+|tradecode|String|交易码|
+
+
+
+## 签名计算 ##
+
+
+* 除sign和参数值为空以外的参数都要参与签名
+* 以参数名按字母排序并以key=value的形式以&符号连接得到加密字符串
+* 以约定的秘钥对加密字符串进行加密,加密方式为HAMC-SHA1
+
+**示例**
+
+- partner_id: 100004
+- stuempno: 10000035
+- timestamp: 20170810153811
+- sign_method: HMAC
+- sign:42fa845499384b830b774caf423c2fedd43f0b23
+
+- 加密字符串: partner_id=100004&sign_method=HMAC&stuempno=10000035×tamp=20170810153811
+
+
+
+
+## 2.4 卡片挂失 ##
+
+**请求URL:**
+
+- `http(s)://ip:port/epayapi/services/thirdparty/common/cardloss`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+|参数名 | 类型 | 必选 | 说明 |
+|-----|------|-----|------|
+|partner_id|String|是 |本系统分配给各个接入应用的合作伙伴id号|
+|stuempno|String|否*|挂失对象的学工号。与卡片物理ID必传一项|
+|cardphyid|String|否*|卡片物理ID,读卡得到。与学工号选其一即可,都传默认学工号为主|
+|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
+|sign|String|是| 签名|
+|sign_method|String|是|固定填: HMAC (加密方式为HAMC-SHA1)|
+
+**请求内容示例:**
+```
+
+- URI:http(s)://ip:port/epayapi/services/thirdparty/common/cardloss
+- partner_id:10000
+- stuempno:09893092
+- timestamp:20150119130901
+- sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+- sign_method:HMAC
+
+```
+
+**返回示例:**
+
+- 成功
+
+```json
+{
+ "retcode": "0",
+ "retmsg": "成功",
+}
+
+```
+
+- 失败
+
+```json
+{
+ "retcode": "51",
+ "retmsg": "卡已挂失"
+}
+
+```
+
+**返回参数说明:**
+
+|参数名 | 类型 | 说明 |
+|-----|-----|------|
+|retcode|String|返回码(0=成功,其他为失败)|
+|retmsg|String|返回消息|
+
+## 2.5 账户余额查询 ##
+
+**请求URL:**
+
+- `http(s)://ip:port/epayapi/services/thirdparty/common/accountquery`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+|参数名 | 类型 | 必选 | 说明 |
+|-----|------|-----|------|
+|partner_id|String|是 |本系统分配给各个接入应用的合作伙伴id号|
+|stuempno|String|否*|挂失对象的学工号。与卡片物理ID必传一项|
+|cardphyid|String|否*|卡片物理ID,读卡得到。与学工号选其一即可,都传默认学工号为主|
+|timestamp|String|是|时间戳格式为yyyyMMddhh24miss|
+|sign|String|是| 签名|
+|sign_method|String|是|固定填: HMAC (加密方式为HAMC-SHA1)|
+
+**请求内容示例:**
+```
+
+- URI:http(s)://ip:port/epayapi/services/thirdparty/common/accountquery
+- partner_id:10000
+- stuempno:09893092
+- timestamp:20150119130901
+- sign:5195f9b9116e4adf67eeebc9935d33dc683f677d
+- sign_method:HMAC
+
+```
+
+**返回示例:**
+
+- 成功
+
+```json
+{
+ "retcode": "0",
+ "retmsg": "query success",
+ "status": "normal",
+ "balance": 5040,
+ "frozenbal": 0,
+ "expiredate": "20300801",
+ "onceTimeLimit": 3000,
+ "dayTotalLimit": 20000
+}
+
+```
+
+- 失败
+
+```json
+{
+ "retcode": "51",
+ "retmsg": "card is lost"
+}
+
+```
+
+
+**返回参数说明:**
+
+|参数名 | 类型 | 说明 |
+|-----|-----|------|
+|retcode|String|返回码(0=成功,其他为失败)|
+|retmsg|String|返回消息|
+| status |String|状态 normal 正常,其他返回错误|
+|balance|Integer|余额(分)|
+| frozenbal |Integer|冻结金额(分)|
+| expiredate |String|卡有效期|
+| onceTimeLimit |Integer|单次消费最高限额(分),超出要输卡密码|
+| dayTotalLimit |Integer|当天累计消费限额(分),超出要输入卡密码|
+
+