新pos签到及虚拟卡消费接口文档
diff --git "a/source/_posts/V5\346\226\260\347\232\204POS\347\255\276\345\210\260\345\217\212\350\231\232\346\213\237\345\215\241\346\266\210\350\264\271\346\216\245\345\217\243.md" "b/source/_posts/V5\346\226\260\347\232\204POS\347\255\276\345\210\260\345\217\212\350\231\232\346\213\237\345\215\241\346\266\210\350\264\271\346\216\245\345\217\243.md"
new file mode 100644
index 0000000..e2cc708
--- /dev/null
+++ "b/source/_posts/V5\346\226\260\347\232\204POS\347\255\276\345\210\260\345\217\212\350\231\232\346\213\237\345\215\241\346\266\210\350\264\271\346\216\245\345\217\243.md"
@@ -0,0 +1,401 @@
+# 一、V5新的POS签到接口 #
+###1.1 获取token###
+**请求URL:**
+
+- `.../v5/manage/pos/gettoken`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| devtoken | String | 是 | token值 |
+
+**返回示例:**
+
+```json
+{
+ "retcode": "0",
+ "retmsg": "成功",
+ "devtoken" : "ff8080815a7d38ff015a7d3abb970003"
+}
+
+```
+
+###1.2 pos签到###
+**请求URL:**
+
+- `.../v5/manage/pos/login`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| termtype | String | 是 | 终端类型 |
+| termdate | String | 是 | 终端日期 |
+| termtime | String | 是 | 终端时间 |
+| deviceno | String | 是 | 终端编号 |
+| devseqno | String | 是 | 终端流水号 |
+| termno | String | 是 | PSAM卡号(后面统一用samno) |
+| paraverno | String | 是 | 参数版本号 |
+| feeverno | String | 是 | 费率版本号 |
+| payverno | String | 是 | 支付组版本号(多账户) |
+| cardverno | String | 是 | 黑名单版本号 |
+| devsoftverno | String | 否 | pos程序版本 |
+| `devmac` | String | 是 | PSAM对token计算得到的MAC |
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| systime | String | 是 | 系统时间,yyyyMMddhhmmss |
+| devphyid | String | 是 | 终端物理ID |
+| deviceid | int | 是 | 终端ID |
+| paraverno | int | 是 | 设备参数版本号 |
+| feeverno | int | 是 | 设备费率版本号 |
+| payverno | int | 是 | 支付组版本号(多账户) |
+| cardverno | String | 是 | 黑名单版本号 |
+| mf1key | String | 是 | - |
+| paragroupid | int | 是 | 设备参数组ID |
+| feecfgid | int | 是 | 设备费率组ID |
+| paygroupid | int | 是 | 设备支付组ID(多账户) |
+| offlineflag | boolean | 是 | 是否允许脱机消费(多账户) |
+| keyindex | int | 是 | - |
+| onlinetermseqno | long | 是 | 联机终端流水号 |
+| credittermseqno | int | 是 | 授信终端流水号 |
+| offlinetermseqno | long | 是 | 脱机(B模式)终端流水号 |
+
+
+**返回示例:**
+
+```json
+{
+ "retcode": "0",
+ "retmsg": "成功",
+ "systime": "20170410111324",
+ "devphyid": "20000001",
+ "deviceid": 11,
+ "paraverno": 3,
+ "feeverno": 1,
+ "payverno": 2,
+ "cardverno": "170410000012",
+ "mf1key": "ff8080815a7d38ff015a7d3abb970003",
+ "paragroupid": 1,
+ "paygroupid": 1,
+ "feecfgid": 1,
+ "keyindex": 1,
+ "onlinetermseqno": 512,
+ "credittermseqno": 42,
+ "offlinetermseqno": 11
+}
+
+```
+
+###1.3 pos机新刷卡消费接口###
+**请求URL:**
+
+- `.../consume/pos/newcardpay`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| termseqno | String | 是 | 终端流水号 |
+| cardno | String | 是 | 卡号 |
+| amount | String | 是 | 金额,分 |
+| managefee | String | 是 | 搭伙费 |
+| managefeetype | String | 是 | 搭伙费类型 |
+| credittotal | String | 是 | 累计授信额度 |
+| creditpaycnt | String | 是 | 授信次数 |
+| creditavailable | String | 是 | 剩余授信额度 |
+| creditseqno | String | 是 | 授信期号 |
+| creditflag | Boolean | 是 | 申请授信标志 |
+| shopid | String | 否 | 商户id |
+| sourcetype | String | 是 | 交易渠道,如:‘pos’ |
+| cardmac | String | 是 | 卡mac (新增)|
+| posmac | String | 是 | psam卡mac (新增)|
+| termdate | String | 是 | 终端交易日期 (新增)|
+| termtime | String | 是 | 终端交易时间 (新增)|
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| needpwdconfirm | Boolean | 是 | 是否需要密码 |
+| accdate | String | 是 | 记账日期 |
+| refno | String | 是 | 交易参考号 |
+| balance | long | 是 | 账户余额 |
+| creditretcode | String | 是 | 授信处理标志 |
+| creditline | Long | 是 | 授信额度 |
+| creditseqno | String | 是 | 授信期号 |
+| nexttermseqno | String | 是 | 下笔终端流水号 |
+| amount | int | 是 | 交易金额 |
+| managefee | int | 是 | 搭伙费 |
+| custname | int | 是 | 姓名 |
+| stuempno | boolean | 是 | 学工号) |
+| cardverno | int | 是 | 卡版本号 |
+| custexpiredate | long | 是 | 客户有效期 |
+| offlineForbidFlag | int | 是 | 禁止脱机消费标志 |
+
+
+# 二、虚拟卡POS消费接口 #
+###2.1 查询账户信息###
+**请求URL:**
+
+- `.../consume/pos/virtualaccquery`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| vtoken | String | 是 | 虚拟卡token |
+| tokenverno | String | 是 | 虚拟卡token版本 |
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| balance | Long | 是 | 余额 |
+| frozenbal | Long | 是 | 冻结余额 |
+| feetype | int | 是 | 收费类别(搭伙费等计算) |
+| status | String | 是 | 卡状态 |
+| expiredate | String | 否 | 卡有效期 |
+| onceTimeLimit | Long | 否 | 单次消费限额 |
+| dayTotalLimit | Long | 否 | 日累计消费限额 |
+| custname | String | 是 | 姓名 |
+| stuempno | String | 是 | 学工号 |
+
+###2.2 POS消费###
+**请求URL:**
+
+- `.../consume/pos/virtualcardpay`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| vtoken | String | 是 | 虚拟卡token |
+| tokenverno | String | 是 | 虚拟卡token版本 |
+| termseqno | String | 是 | 终端流水号 |
+| amount | String | 是 | 交易金额,单位:分|
+| shopid | String | 否 | 商户号 |
+| tradename | String | 否 | 交易名称(默认 `POS消费`) |
+| sourcetype | String | 是 | 交易渠道(pos/dmt/...) |
+| termdate | String | 是 | 终端日期 |
+| termtime | String | 是 | 终端时间 |
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| needpwdconfirm | Boolean | 是 | 是否要输入密码 |
+| accdate | String | 是 | 记账日期 |
+| refno | String | 是 | 参考号 |
+| balance | String | 是 | 余额 |
+| custname | String | 是 | 姓名 |
+| stuempno | String | 是 | 学工号 |
+| amount | Integer | 是 | 消费金额 |
+| managefee | Integer | 是 | 学工号 |
+
+###2.3 POS密码消费确认###
+**请求URL:**
+
+- `.../consume/pos/virtualcardpayconfirm`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| termseqno | String | 是 | 终端流水号 |
+| accdate | String | 是 | 记账日期 |
+| refno | String | 是 | 参考号 |
+| cardpwd | String | 是 | 卡密码 (密文)|
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| needpwdconfirm | Boolean | 是 | 是否要输入密码 |
+| accdate | String | 是 | 记账日期 |
+| refno | String | 是 | 参考号 |
+| balance | String | 是 | 余额 |
+| custname | String | 是 | 姓名 |
+| stuempno | String | 是 | 学工号 |
+| amount | Integer | 是 | 消费金额 |
+| managefee | Integer | 是 | 学工号 |
+
+
+###2.3 POS消费查询###
+**请求URL:**
+
+- `.../consume/pos/virtualcardpayquery`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| termseqno | String | 是 | 要查询流水的终端流水号 |
+| termdate | String | 是 | 要查询流水的终端日期 |
+| termtime | String | 是 | 要查询流水的终端时间 |
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| accdate | String | 是 | 流水记账日期 |
+| refno | String | 是 | 流水参考号 |
+| dtlstatus | String | 是 | 流水状态 init-初始化,success-成功,fail-失败 |
+| balance | String | 是 | 余额 |
+| custname | String | 是 | 姓名 |
+| stuempno | String | 是 | 学工号 |
+| amount | Integer | 是 | 消费金额 |
+| managefee | Integer | 是 | 搭伙费、折扣 |
+
+###2.3 POS消费冲正###
+**请求URL:**
+
+- `.../consume/pos/virtualcardpayreverse`
+
+**请求方式/格式:**
+
+- POST
+- application/x-www-form-urlencoded
+
+**请求参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| devphyid | String | * | 设备物理ID,与termid必传一个 |
+| termid | String | * | 设备号(终端ID),与devphyid必须传一个 |
+| termseqno | String | 是 | 终端流水号 |
+| reversetermseqno | String | 是 | 要冲正的终端流水号 (日期仅为当天termdate或前一天)|
+| reversalflag | String | 是 | 冲正标志。CANCEL-自动;REVERSE-手动|
+| termdate | String | 是 | 终端日期|
+| termtime | String | 是 | 终端时间|
+| vtoken | String | 是 | 虚拟卡token(手工冲正必须) |
+| tokenverno | String | 是 | 虚拟卡token版本 (手工冲正必须)|
+| sourcetype | String | 是 | 交易渠道 |
+| app_id | String | 是 | APPID |
+| term_id | String | 是 | 终端标识 |
+| timestamp | String | 是 | yyyyMMddhhmmss |
+| sign_method | String | 是 | `HMAC` |
+| sign | String | 是 | 参数签名 |
+
+
+**返回参数:**
+
+| 参数名 | 类型 | 必须 | 说明 |
+| --- | ----- | ----- | ------ |
+| retcode | String | 是 | 0-成功,其他失败 |
+| retmsg | String | 是 | 返回信息,失败时返回错误信息 |
+| termseqno | String | 是 | 当前流水号 |
+
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 24b0ab7..8953023 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"
@@ -24,13 +24,15 @@
## 接口定义
-### 0. 银行卡绑定
-* **URL: .../bankservice/{bank}/bindbankcard**
+### 0. 银行卡绑定/解绑
+* **绑定URL: .../bankservice/{bank}/bindbankcard**
+* **解绑URL: .../bankservice/{bank}/unbindbankcard**
+
* **请求方式**
`POST`
-*绑定银行卡*
+*绑定/解绑银行卡*
* **请求参数**
- `bankcardno` - 银行账号(银行卡号)
@@ -154,7 +156,7 @@
* **返回**
-- `retcode` - "0" 标识查询到指定的圈存流水,并交易成功;"01" 标识无指定流水,其它表示错误
+- `retcode` - "0" 标识查询到指定的圈存流水,并交易成功;其它表示错误
- `retmsg` -"msg" 返回信息
- `bankseqno` - (可选)如果查询到圈存流水则返回银行端流水号,但不是所有银行都支持返回银行端流水号
diff --git "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\224\265\346\216\247\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\347\224\265\346\216\247\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 a983873..9e8f535 100644
--- "a/source/_posts/\344\270\200\345\215\241\351\200\232v5\347\224\265\346\216\247\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\347\224\265\346\216\247\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"
@@ -215,7 +215,11 @@
- buiId - 楼栋ID
- roomId - 房间ID
- roomName - 房间名
- - restElecDegree - 剩余电量
+ - restElecDegree - 剩余电量 (总电量)
+ - degreelist - list:一房多表的集合
+ - elecode - 电表代码
+ - name - 名称。照明、空调等
+ - restElecDegree 剩余电量
```json
{
@@ -226,7 +230,16 @@
"buiId":"20",
"roomId":"2010",
"roomName":"2010室",
- "restElecDegree":12.0
+ "restElecDegree":12.0,
+ "degreelist":[{
+ "elecode":"lighting",
+ "name":"照明",
+ "restElecDegree":8.0
+ },{
+ "airConditioner":"lighting",
+ "name":"空调",
+ "restElecDegree":4.0
+ }]
}
}
```
@@ -243,6 +256,7 @@
- `area` - 查询校区返回的areaId
- `bui` - 查询楼栋返回的buiId
- `room` - 查询房间返回的roomId
+- `elecode ` - 电表代码。可以为空(不分电表时),一房多表时据此区分不同电表充值
- `cust` - 客户唯一号 (兼容以前版本),空时填0
- `custid` - 系统唯一号,客户号(与stuempno,可选),空时填0
- `stuempno` - 系统唯一号,学工号(与custid,可选),空时填0