| 日期 | 版本 | 作者 | 说明 |
|---|---|---|---|
| 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 }