日期 | 版本 | 作者 | 说明 |
---|---|---|---|
2015-4-14 | V1.0 | 汤成 | 初稿 |
2017-2-13 | V1.1 | 夏凯祥 | V1.1 |
在项目中进行银行圈存对接开发时需要对悦校与一卡通同时支持。此文档为一卡通系统与银行圈存前置的对接规范,用户可根据实际情况实现前置与银行业务的对接。
SIGN_ALGORITHMS ="SHA1withRSA"
;绑定URL: .../bankservice/{bank}/bindbankcard
解绑URL: .../bankservice/{bank}/unbindbankcard
请求方式 POST
绑定/解绑银行卡
bankcardno
- 银行账号(银行卡号)bankcode
- 银行代码 如:ICBC、ABC、BOCcustname
- 用户姓名,必须是该用户在银行的开户名(可选)custid
- 系统唯一号,客户号(可选)stuempno
- 系统唯一号,如学工号(可选)idtype
- 证件类型(可选)idno
- 身份证号(可选)termid
- 发起终端号(可选)tradetime
- 发起方时间,格式 yyyyMMddHHmmssseqno
- 发起方流水号(可选)timeout
- (可选)前置机与银行通讯的超时时间,单位秒,范围 1 ~ 90 , 默认值为10sign
- 签名。除sign的非空字段按上述顺序拼接进行签名加密,如(bankcardno + bankcode + custid +stuempno+idtype+idno+termid+tradetime+timeout)。retcode
- "0" 标识操作成功,其余为异常情况retmsg
- "msg" 返回信息{ "retcode":"0", "retmsg":"msg", // 异常原因 }
URL: .../bankservice/{bank}/bankbalquery
请求方式 POST
查询银行余额,根据银行实际情况不是所有银行都支持
bankcardno
- 银行账号(银行卡号)custname
- 用户姓名,必须是该用户在银行的开户名(可选)custid
- 系统唯一号,客户号 (可选)stuempno
- 系统唯一号,如学工号(可选)idtype
- 证件类型(可选)idno
- 身份证号(可选)termid
- 发起终端号(可选)tradetime
- 发起方时间,格式 yyyyMMddHHmmssseqno
- 发起方流水号(可选)timeout
- (可选)前置机与银行通讯的超时时间,单位秒,范围 1 ~ 90 , 默认值为10sign
- 签名。除sign的非空字段按上述顺序拼接进行签名加密,如(bankcardno+ custid +stuempno+idtype+idno+termid+tradetime+timeout)。retcode
- "0" 标识操作成功,其余为异常情况retmsg
- "msg" 返回信息money
- 银行卡余额,单位元{ "retcode":"0", "retmsg":"msg", // 异常原因 "money":412.3 //单位(元) }
URL: .../bankservice/{bank}/charge
请求方式 POST
银行圈存请求,通过该请求完成银行卡转账业务
bankcardno
- 银行卡号bankcardpwd
- 银行卡密码(可选)extdata
- 银行卡扩展信息refno
- 系统交易参考号stuempno
- 系统唯一号,如学工号(可选)custid
- 系统唯一号,如客户号 (可选)custname
- 客户姓名(可选)idtype
- 证件类型(可选)idno
- 身份证号(可选)amount
- 圈存金额,单位分(整数)termid
- 终端编号(可选)tradetime
- 请求时间, 格式yyyyMMddHHmmsstimeout
- (可选)前置机与银行通讯的超时时间,单位秒,范围 1 ~ 90 , 默认值为10sign
签名。除sign的非空字段按上述顺序拼接进行签名加密,如(bankcardno+refno+stuempno+custid+idtype+idno+amount+termid+ tradetime+timeout)。retcode
- "0" 标识操作成功,其余为异常情况retmsg
- "msg" 返回信息bankseqno
- (可选)返回银行端流水号,但不是所有银行都支持返回银行端流水号{ "retcode":"0", "retmsg":"msg", // 返回信息 "bankseqno": "1231", // 如果银行支持,返回银行端流水号 }
URL: .../bankservice/{bank}/transquery
请求方式 POST
根据系统交易参考号查询圈存请求的结果,一般是圈存请求超时后通过这个接口判断银行交易是否成功,但不是所有银行都支持这个接口
bankcardno
- 银行卡号extdata
- 银行卡扩展信息refno
- 系统交易参考号stuempno
- (可选)学工号custid
- (可选)客户号custname
- (可选)客户姓名idtype
- (可选)证件类型idno
- (可选)身份证号码termid
- (可选)终端编号tradetime
- 请求时间, 格式yyyyMMddHHmmsstimeout
- (可选)前置机与银行通讯的超时时间,单位秒,范围 1 ~ 90 , 默认值为10sign
- 签名。除sign的非空字段按上述顺序拼接进行签名加密。如(bankcardno+refno+custid+stuempno+idtype+idno+termid+ tradetime+timeout)。retcode
- "0" 标识查询到指定的圈存流水,并交易成功;其它表示错误retmsg
-"msg" 返回信息bankseqno
- (可选)如果查询到圈存流水则返回银行端流水号,但不是所有银行都支持返回银行端流水号{ "retcode":"0", "retmsg":"msg" // 返回信息 "bankseqno": 123, // 银行端流水号 }
URL: .../bankservice/{bank}/chargereverse
请求方式 POST
圈存冲正接口,一般是圈存请求超时后通过这个接口冲正前面一笔圈存交易,但不是所有银行都支持这个接口
bankcardno
- 银行卡号extdata
- 银行卡扩展信息refno
- 系统交易参考号reverserefno
- 前一笔要冲正的圈存交易的参考号stuempno
- (可选)学工号custid
- (可选)客户号custname
- (可选)客户姓名idtype
- (可选)证件类型idno
- (可选)身份证号amount
- 金额,单位分(整数)termid
- (可选)终端编号tradetime
- 请求时间, 格式yyyyMMddHHmmsstimeout
- (可选)前置机与银行通讯的超时时间,单位秒,范围 1 ~ 90 , 默认值为10sign
签名。除sign的非空字段按上述顺序拼接进行签名加密。(bankcardno+refno+ reverserefno +custid+stuempno+idtype+idno+ amount +termid+ tradetime+timeout)。retcode
- "0" 标识冲正成功,其它表示错误retmsg
- 返回信息bankseqno
- (可选)返回银行端流水号,但不是所有银行都支持返回银行端流水号{ "retcode":"00", "retmsg":"msg", // 返回信息 "bankseqno":"122121" }
URL: http(s)://ip:port/epayapi/services/bankservice/sendchkbilldata
请求方式 POST
API接收对账单统一接口,由前置发起调用。前置拉取对账单后调用此接口向API发送解析后的对账数据。
accdate
- 账单日期,yyyyMMddchkcode
- 账单标识,若是银行对账,传银行标识{bankcode}。‘alipay’-支付宝,‘wechat’- 微信,‘wmxy’-完美校园等thirdpartid
-第三方ID,非必传。如充值机对账时的终端ID等errmsg
- 存放错误信息(拉取第三方对账单失败时也要调用此接口,发送错误原因),默认为空。(明确某天系统无对账单时,是拉取对账单失败或解析失败等,而不是前置或系统异常导致)pageno
- 分批次上传时,pageno逐次递增,初始为1(1,2,3,...),不能跳跃endflag
- 结束标志。true-全部上传完成,false-未上传完成,还需继续app_id
- 前置配置的APPIDtimestamp
- 时间戳 ‘yyyyMMddHHmmss’sign
- 签名数据 (accdate+chkcode+pageno+endflag+ timestamp +APPKEY 最后MD5)data
-数据集合transdate
- 交易日期 yyyyMMddtranstime
- 交易时间 HHmmssstuempno
- 系统唯一号,如学工号、客户号thirdpartaccno
- 支付宝、微信、银行卡号等账号refno
- 系统交易参考号,本地流水号thirdpartrefno
- 第三方流水号,银行、支付宝、微信流水号amount
- 交易金额,单位分。billtype
- 流水状态标志。('SUCCESS'-圈存成功流水;‘BEREFD’-被冲正的圈存流水; -'REFUND'-冲正流水)retcode
- "0" 标识冲正成功,其它表示错误retmsg
-"msg" 返回信息totalcnt
- 收到的流水笔数totalamt
- 收到的流水金额,单位元{ "retcode":"0", "retmsg":"msg", // 返回信息 "totalcnt":100, "totalamt":2340.00 }