- 1 文档说明
- 1.1 文档目的
- 1.2 阅读对象
- 1.3 技术支持联系方式
- 1.4 术语与定义
- 1.4.1 符号含义
- 1.4.2 术语含义
- 2 业务方案说明
- 2.1 应用场景
- 2.2 业务流程
- 2.3 业务接口
- 2.3.1 转账支付类交易
- 2.3.1.1 请求报文
- 2.3.1.2 应答报文(宝付返回报文)
- 2.3.2 转账支付订单查询接口
- 2.3.2.1 请求报文
- 2.3.2.2 应答报文
- 2.3.3 转账支付异步通知
- 2.3.2.1 功能说明
- 2.3.2.2 通知报文
- 2.3.4 商户分账结果查询接口
- 2.3.4.1 功能说明
- 2.3.4.2 请求报文
- 2.3.4.3 应答报文
- 2.3.5 异步通知分账结果
- 2.3.5.1 功能说明
- 2.3.5.2 应答报文(宝付返回报文)
- 2.3.6 转账支付订单取消接口
- 2.3.6.1 交易URL
- 2.3.6.2 请求报文
- 2.3.6.3 应答报文
- 2.3.7 转账支付订单银行流水查询接口
- 2.3.7.1 交易URL
- 2.3.7.2 请求报文
- 2.3.7.3 应答报文
- 2.3.8 异步通知流水信息
- 2.3.8.1 功能说明
- 2.3.8.2 应答报文(宝付返回报文)
- 2.3.9 转账支付订单银行流水查询接口(按时间段查询)
- 2.3.9.1 交易URL
- 2.3.7.2 请求报文
- 2.3.9.3 应答报文
- 2.3.10 转账支付订单号异步通知
- 2.3.10.1 功能说明
- 2.3.10.2 通知报文
- 附录
- 1 应答码
- 2 银行编码
- 3 交易子类
- 4 匹配码规则
- 5 订单重复性校验
1 文档说明
1.1 文档目的
本文档目的是为宝付商户转账支付定义一个接口规范,以帮助商户技术人员快速接入宝付网关,并快速掌握其相关功能,便于尽快的投入使用。
1.2 阅读对象
- 商户开发人员、维护人员和管理人员
- 宝付转账支付相关的技术人员
1.3 技术支持联系方式
在开发或使用转账支付接口时,如果您有任何技术上的疑问,请按如下方式寻求帮助,宝付技术支持人员会及时处理,给予您答复。
- 技术支持热线:021-68819999-8005
- 技术支持Email:support@baofoo.com
- 技术支持QQ:800066689
1.4 术语与定义
1.4.1 符号含义
序号 | 符号缩写 | 符号性质 | 符号说明 |
---|---|---|---|
1 | M | 强制域(Mandatory) | 必须填写的属性,否则会被认为格式错误 |
2 | C | 条件域(Conditional) | 某条件成立时必须填写的属性 |
3 | O | 选用域(Optional) | 选填属性 |
4 | R | 原样返回域(Returned) | 必须与先前报文中对应域的值相同的域 |
1.4.2 术语含义
- 商户号:宝付提供给商户的唯一编号,是商户在宝付的唯一标识。
- 终端号:商户在与宝付签订某项具体产品功能的合作协议自动分配的会员属性,将用于进行具体交易的必要参数。
- 原商户订单号:原先支付时商户请求提交的支付订单号。
- 商户流水号:商户请求宝付时提交的流水号,每次请求均不可重复。
- 商户订单号:商户请求宝付时提交的订单号,当天请求不可重复;
- 宝付交易号:宝付用于一笔订单的唯一标识。
2 业务方案说明
2.1 应用场景
转账支付产品由宝付开发,提供给合作商户的一种安全的支付产品。
用户购买商品或服务时,向宝付分配给商户的专属账户打款,宝付进行自动匹配加值的模式。
注:该接口为纯后台模式
2.2 业务流程
1、商户开通转账支付/转账支付分账产品,自动创建分配商户转账支付专属账户;
2、用户在商户平台进行正常的支付请求,商户向用户展示收款专属账户信息;
账号:开通商户号后由宝付分配
户名:宝付网络科技(上海)有限公司
银行:支付机构备付金集中存管账户
开户城市:上海
开户网点:宝付网络-备付金账户
行号:991290000793
3、商户组织交易报文,将用户支付要素发送给宝付;
4、用户通过网银或手机APP向商户的收款专属账户进行支付付款款项;
5、宝付调用银行得到支付结果;
6、宝付异步返回支付结果给商户;
2.3 业务接口
2.3.1 转账支付类交易
转账支付类交易是指商户根据持卡人请求指令,将持卡人信息发送至宝付,持卡人通过网银或手机APP从银行卡账户中支付付费款项的业务,该模式属于后台支付模式。
交易URL
测试环境地址:https://vgw.baofoo.com/cutpayment/api/backTransRequest
正式环境地址:https://public.baofoo.com/cutpayment/api/backTransRequest
2.3.1.1 请求报文
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 版本号 | version | M | 4.0.0.0 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 交易类型 | txn_type | M | 取值0431 |
05 | 交易子类 | txn_sub_type | M | 88 |
06 | 加密数据类型 | data_type | M | json |
07 | 加密数据 | data_content | M | 具体参数如下加密数据。注意:加密之前,先将组装的数据(请参照数据模版组装)进行Base64编码转化,然后再进行证书加密。 |
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
02 | 终端号 | terminal_id | M | |
03 | 交易子类 | txn_sub_type | M | 88 |
04 | 商户订单号 | trans_id | M | 商户发起的支付订单号 |
05 | 商户流水号 | trans_serial_no | M | 8-20 位字母和数字,每次请求都不可重复 |
06 | 接入类型 | biz_type | C | 其他:不填写和默认0000,表示为储蓄卡支付。 |
07 | 支付金额 | order_money | M | 单位:分 |
08 | 收款方账户号 | payee_acct_code | M | 收款方账户号 |
09 | 付款方账户号 | payer_acct_code | M | 付款方账户号 |
10 | 付款方开户名 | payer_user_name | M | 付款方开户名 |
11 | 银行流水号 | bank_serial_no | C | |
12 | 回调地址 | call_back_url | O | 如果传入,则异步通知使用该url;如果未传入,则不做异步通知 |
13 | 分账明细 | share_info | O | 金额单位(分),在内扣模式下需要满足收单金额=手续费+分账金额,在外扣模式下需要满足收单金额=分账金额。格式:商户1,金额1;商户2,金额2…例如:100000363,10;100000364,90 |
14 | 分账通知地址 | share_notify_url | O | 分账结果通知 |
15 | 附加字段 | additional_info | O | 长度不超过 128 位 |
16 | 请求方保留域 | req_reserved | O | |
17 | 手续费承担方 | fee_member_id | O |
加密数据模板
- JSON
{ "terminal_id":123456, "member_id":123564, "txn_sub_type:88, "trans_id":"123456", "trans_serial_no":"1234567890", "additional_info":"附加字段", "req_reserved":"请求方保留域", "order_money":"1000000", "payee_acct_code":"收款方账户号", "payer_acct_code ":"付款方账户号", "payer_user_name ":"付款方开户名", "bank_serial_no":"银行流水", "call_back_url ":"支付回调地址", "share_info":"100000363,10;100000364,90 " "share_notify_url":"分账回调地址", }
2.3.1.2 应答报文(宝付返回报文)
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 应答码 | resp_code | M | 应答码为0000时,表示订单预提交成功 |
02 | 应答信息 | resp_msg | M | |
03 | 版本号 | version | R | |
04 | 商户号 | member_id | R | 宝付提供给商户的唯一编号 |
05 | 终端号 | terminal_id | R | |
16 | 接入类型 | biz_type | R | |
07 | 数据类型 | data_type | R | xml/json |
08 | 交易类型 | txn_type | R | 取值0431 |
09 | 交易子类 | txn_sub_type | R | 88 |
10 | 商户流水号 | trans_serial_no | R | 8-20 位字母和数字,每次请求都不可重复 |
11 | 商户订单号 | trans_id | R | 商户订单号 |
12 | 附加字段 | additional_info | O | |
13 | 预留字段 | req_reserved | R |
支付响应结果都是宝付通过非对称加密公私钥方式发送给商户。商户接收到宝付的响应报文,将接收到的data_content内容,用宝付发给商户且后缀为(*.cer)的公钥证书进行解密。
返回报文实例
4d34ab4f6f7f0cf3bec59a8028bb253ae6e6408c3ccb60d440a900d7e1cc627765cb8d9e0ec8b90caab5501d4fc54fcca54e7932e1254ff2f54aebd476f1f663f76fe4e855767621012fd69fb67130ac66362dc110219352b8b72b913cb354c50adf94b4b57728b1ec604288e0abab32987b72ba2f056c021d15326caac1d23d164f068f8208a471f7e939e0cc8aa757db805e109ab79ec547e5adbebfef338755bafe27bacd43329b0e9aa9660b63503eaf91f1185a868e54a850bc73531fee1f8f2d760f2bec40bcbf5cacd6723e8d2bae01dd89247020de6efc2a104c70ac5a448cd43bd18ab32c6b97516158454a98941864245eb837a82a4df039373e3b400f5e297ffc4504a205ba50a52d9f8824699dc21c91bf0d3da3026baf4c8863fb6c297ddbe84191e0928361ef70adacb6f886ba60eb4c77cd1925a144ecf993c7f27d00f2fe8402b26323f5341f4cc4febe09b99975cae0740a5f3c3f44a23b6efed9a8dff1ec8501252763a000945950d18ed71dc698b1fb23cf2456ef63f73c3fb46578d838de0477dc5535b6e282a3c7c29c50d2a30688c1d8fb64720a4badaf2818888ff428d42207de75fa8f10296c0827291845a54dfd29ef58ca57e839d4d6327b5287ba3f72eed76b7728d51bf1d9ab207d0d5e2b2cc732ae29cd4baef6165359fd18b986723f484c5ee87be99dc393a147e7642c855644076522f45625305828dcb150cbf006b945551207b3fad9e34d9adc7e6d7f9fe87ee8c4a2e671609a75670f66f2c64175e72d1fe0f417c60996950c3aa616c0e275c5fa5217edf37b16c1df3d4f80dce6c2b5c86f13ff2507e643b30e9d77d2dded554ac8f6532e80641dac9528b0e21d3c7ffafcbdb270218789f19bc9f9c7e3a642fa332191bf8d0c73873b20720e896d91359ae55b791fdab61b5e4a3cae4b5457925053078560f2bff13bd9ce7d53fd195700a7c10b4bd91e8ebf7edce21d591be6896f35b90304bfa343a38bf6cdde3e0f1f1c87306f36a2cb787ddb4e7b8fa7488977b85df7afde96c13278ee2661df3de8663d48a526d12e6b11b517e1e75b1f2d5a1d72c30a09eccb516cff4bbb14a52a26cdf6b88cee178c65a9fb86b049f2fc7d37cafe3c98bf54d737162df60c60460c478754c30c3d622a471df4f56d5d8e03f04d3528f8e112dcb55550fa4cccbdde1de3718362b0194be9b47901651e974acd21bfc6ec4b5577ee86bdfdc3f68927e5155f3717697690e9d30499be645d
解密后报文
- JSON
请求响应结果的数据类型根据请求参数字段“data_type”来决定,输出内容包括{ "version ":" 4.0.0.0", "member_id":"123456", "terminal_id":"456789", "resp_code":"0000", "resp_msg":"交易成功", "data_type":"json", "biz_type ":"biz_type ", " resp_msg ":"交易成功", "req_reserved":"预留字段", "txn_sub_type":"88", "txn_type":"0431", "trans_serial_no":"3451592355", "trans_id":"1984854162" }
2.3.2 转账支付订单查询接口
交易URL
测试环境地址:https://vgw.baofoo.com/cutpayment/api/backTransRequest
正式环境地址:https://public.baofoo.com/cutpayment/api/backTransRequest
2.3.2.1 请求报文
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 版本号 | version | M | 4.0.0.0 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 交易类型 | txn_type | M | 取值0431 |
05 | 交易子类 | txn_sub_type | M | 40 |
06 | 加密数据类型 | data_type | M | data_type =xml或json |
07 | 加密数据 | data_content | M | 具体参数如下加密数据。 |
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 交易子类 | txn_sub_type | M | 40 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 商户订单号 | trans_id | M | 商户发起的支付订单号 |
05 | 商户流水号 | trans_serial_no | M | 8-20 位字母和数字,每次请求都不可重复 |
06 | 接入类型 | biz_type | C | 其他:不填写和默认0000,表示为储蓄卡支付。 |
07 | 请求方保留域 | req_reserved | O | |
08 | 附加字段 | additional_info | O |
2.3.2.2 应答报文
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 应答码 | resp_code | M | 0000表示交易成功,仅代表查询订单状态成功,不代表订单支付成功,具体订单什么状态需要看state的值,具体参考下面state各状态代表的含义 |
02 | 应答信息 | resp_msg | M | |
03 | 商户订单号 | trans_id | R | 商户订单号 |
04 | 终端号 | terminal_id | R | |
05 | 交易类型 | txn_type | R | 取值0431 |
06 | 交易子类 | txn_sub_type | R | 40 |
07 | 数据类型 | data_type | R | xml/json |
08 | 版本号 | version | O | |
09 | 附加字段 | additional_info | O | |
10 | 预留字段 | req_reserved | O | |
11 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
12 | 商户流水号 | trans_serial_no | R | 8-20 位字母和数字,每次请求都不可重复 |
13 | 接入类型 | biz_type | R | |
14 | 订单状态 | state | M | 订单的状态:0:待确认(预下单时的状态),1:成功,2:失败,3:待处理,4:已取消 |
15 | 成功时间 | succ_time | O | 仅state=1时即订单已经加值成功的时候才有成功时间,其余状态为空值 |
2.3.3 转账支付异步通知
2.3.2.1 功能说明
将结果异步通知给商户
2.3.2.2 通知报文
member_id= 100000178&terminal_id=1000938&data_content=09f27e40024994307c854b5bff54fdbb79e7ed9900e6013e58a816e31ef39088f42417a5d87d05e01508b93bea5be2af8fa0562b8259b07eff3fb61fee70d69a5550561731b6bf1319a98091180490d6fd783af72d20e7bf53e3b924f6455f93d7234fff06fef004f05e6795903e21535a1b19fa75473fc99a8b8ff2aadc146f85bf2bb168ccfa724a77e24f4aea12ed0634b4810feed3c1c799bdbd03b98c8378ca5fa68efd1bccd54d8f9a7ad80912f8e5c29ff74f0b8bef247c4e4319f8778366f06f3b547f9586bf229e3b15bd38523999bb58f9c11fd68df33da5ad5d99f6a528c69b178248804da25b082ab08f9c504a4db70139f1a540614fa21cebb3
解密后报文
- Xml格式
<result> <resp_code>0000</resp_code> <resp_msg>成功</resp_msg> <memberTransId>test0000000000a01</memberTransId> <state>1</state> <orderMoney>1.01</orderMoney> <succTime>20170808143943</succTime> </result>
- Json格式
{ "resp_code":"0000" "resp_msg":"成功" "memberTransId":"test0000000000a01", "orderMoney":"1.01", "state":"1", "succTime":"20170808143943" }
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 应答码 | resp_code | M | |
02 | 应答信息 | resp_msg | M | |
03 | 商户订单号 | memberTransId | M | |
03 | 订单金额 | orderMoney | M | |
14 | 状态 | state | M | 1:通过 2:失败 |
15 | 成功时间 | succTime | M | yyyyMMddHHmmss |
注:
宝付将掉单或超时的订单取出,补发支付结果(结果有成功和失败,不是仅仅发支付成功的订单,请商户务必要根据应答码判断支付结果是成功还是失败,再进行正确的处理),以GET和POST方式发送到商户配置的接收地址,商户接收到支付结果,并且进行相应处理之后,需要商户接收通知的地址在页面上输出 OK 表示接收成功<除了 OK 无任何其他内容>,告诉宝付已经成功接收并处理完毕,宝付系统在未得到商户接收通知成功的反馈时,将通过重发机制再次通知商户(重发次数 2~10 次,请以第一次收到的支付成功的消息为准,避免进行多次充值或支付),直到商户接收成功或达到最大重发次数为止。
2.3.4 商户分账结果查询接口
2.3.4.1 功能说明
分账代扣产品商户执行分账指令以后结果是异步的,商户只能根据传的notify_url去查询分账是否成功,如果商户接收地址异常的情况下是无法获取分账结果的。针对此类情况添加一个分账结果查询的接口。
交易URL
测试环境地址:https://vgw.baofoo.com/cutpayment/api/backTransRequest
正式环境地址:https://public.baofoo.com/cutpayment/api/backTransRequest
交易开发可参考:*.java
2.3.4.2 请求报文
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 版本号 | version | M | 4.0.0.0 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 交易类型 | txn_type | M | 取值0431 |
05 | 交易子类 | txn_sub_type | M | 35 |
06 | 加密数据类型 | data_type | M | json |
07 | 加密数据 | data_content | M | 具体参数如下加密数据。 |
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 交易子类 | txn_sub_type | M | 35 |
02 | 接入类型 | biz_type | M | 0000 |
03 | 终端号 | terminal_id | M | |
04 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
05 | 商户流水号 | trans_serial_no | M | 8-20 位字母和数字,每次请求都不可重复 |
06 | 商户订单号 | trans_id | M | 商户发起的支付订单号 |
07 | 附加字段 | additional_info | O | 长度不超过 128 位 |
08 | 请求方保留域 | req_reserved | O |
加密数据模板
- Xml格式
<?xml version="1.0" encoding="UTF-8"?> <data_content> <txn_sub_type>35</txn_sub_type> <biz_type>0000</biz_type> <terminal_id>100000949</terminal_id> <member_id>100000749</member_id> <trans_serial_no>20170613145610</trans_serial_no> <trans_id>0ea3f928-95b3-43a2-a598-d1914d2c4dc7</trans_id> <additional_info>test</additional_info> <req_reserved>test</req_reserved> </data_content>
- Json格式
{ "txn_sub_type":"35", "biz_type":"0000", "terminal_id":"100000949", "member_id":"100000749", "trans_serial_no":"20170613145610", "trans_id":"0ea3f928-95b3-43a2-a598-d1914d2c4dc7", "additional_info":"test", "req_reserved":"test" }
2.3.4.3 应答报文
1575809f3d01ff49a4708c398b7e9827edd733cab60be13dd7bcfe5ef2d13efd71b3337b762ae4ec6495ff789278d69634f426a84880f70d196177948f5a85a0d571089b385be33a21beaf77dad5b71e42b5438d90e0a0c07245d1648548d69e5c539b0cacb688f2563a323ec61b297066bbc076902f03937a1fa2d1c0a1d96615a8e8db614eda18f622c84822fc4a7fe118804f096de923b809036c013db1186087c559f721db3b97f6db58d1badead99c621f5e6937feeb403c8575fb266126fd341c94b751e8ce7b994a6110eaae783cd81cae2962a6d92489dfc86e2454280a02d76b0f301c8fb716c9a1946b18116e202570fcea644c52f397fa3b0461e7cf3fd3806dffb8aada003af8ecdeaefdf8f7a87462a680532fd1d1585eac0a6e0a655a9effa574b50afe17bd2ffadd7d3d432a3900bcde276e03f281d5ebbb96783de9b430e22041be6ab4f7ef64dbcdf8b9d25da56031cff0add7508ab16e2512c2a31542a1be833db3603230b2bca6dca52e4359d3ec09666daced2746acd5f54dd15fa2d4b08c95787ee7f7e324ccf41ada4ffd1fd732ccfe2f37cbe742f6a7e69e1e3825750dbc6e96d8a14942c73ac0d6f861b418d286f2472473d9b1865953cfdccdbb23e977fbd3f0efd3da9d8c22e65d0bacfdcfd946ad3086b928af6b4262ade342c4a2b55d077fa0a60476342f582b308118a6df9e2ffe3ba0836a910906ee62d0efdb6171dfe948710b5b70b42dfcd409de1d67e06a91e7284b44a979dd89f08aea5bb2090a8b030bba4abc3d8002b299f4d7db91861851fc3814f6068913503f94dd14291baaddd9dfb22fd5610b658e9773e2b707cefc7ccde66c3d0259e3434d2fa6cd79391bae4eb027c894bfe324c52084372875618585e
解密后报文
- Xml格式
<?xml version="1.0" encoding="UTF-8" ?> <result> <share_state>0</share_state> <version>4.0.0.0</version> <member_id>100000749</member_id> <data_type>xml</data_type> <resp_msg>交易成功</resp_msg> <resp_code>0000</resp_code> <txn_sub_type>35</txn_sub_type> <additional_info>test</additional_info> <terminal_id>100000949</terminal_id> <req_reserved>test</req_reserved> <txn_type>0431</txn_type> </result>
通知结果解密后的报文格式是根据原交易订单请求的“data_type”来决定,输出内容包括
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 版本号 | version | R | |
02 | 请求方保留域 | req_reserved | R | |
03 | 附加字段 | additional_info | R | |
04 | 应答码 | resp_code | M | 具体参见附录:应答码 |
05 | 应答信息 | resp_msg | M | 填写具体的应答信息 |
06 | 商户号 | member_id | R | 宝付提供给商户的唯一编号 |
07 | 终端号 | terminal_id | R | |
08 | 数据类型 | data_type | R | |
09 | 交易类型 | txn_type | R | |
10 | 交易子类 | txn_sub_type | R | |
11 | 接入类型 | biz_type | R | |
12 | 订单结果状态码 | order_state | M | 状态码取值(大写字母): S:交易成功 F:交易失败 I:处理中 FF::交易失败 IMPORTANT:当状态码结果为FF时,非支付订单交易结果,如:必传参数缺失时,报文解析失败时,参数格式校验 |
13 | 分账结果状态码 | share_state | C | 状态码取值(大写字母或数字):1:分账成功、0:未分账、IMPORTANT:当order_state不为FF时必须填写 |
2.3.5 异步通知分账结果
2.3.5.1 功能说明
异步通知分账结果
2.3.5.2 应答报文(宝付返回报文)
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 数据域 | data_content | M | 加密数据 |
加密数据
请求响应结果的数据类型根据请求参数字段“data_type”来决定,输出内容包括
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 应答码 | resp_code | M | 具体参见附录1:应答码 |
02 | 应答信息 | resp_msg | M | 填写具体的应答信息 |
03 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
04 | 终端号 | terminal_id | M | |
05 | 订单号 | trans_id | M |
返回报文示例
- Xml格式
<?xml version="1.0" encoding="UTF-8" ?> <result> <member_id>100000749</member_id> <terminal_id>100000933</terminal_id> <trans_id>87fd763c-df98-4fac-9602-2aa023e8f4c6</trans_id> <resp_msg>分账成功</resp_msg> <resp_code>BF00338</resp_code> </result>
- Json格式
{ "member_id":100000749" "terminal_id":100000933" "trans_id":87fd763c-df98-4fac-9602-2aa023e8f4c6" "resp_msg":分账成功" "resp_code":BF00338" }
2.3.6 转账支付订单取消接口
2.3.6.1 交易URL
测试环境地址:https://vgw.baofoo.com/cutpayment/api/backTransRequest
正式环境地址:https://public.baofoo.com/cutpayment/api/backTransRequest
2.3.6.2 请求报文
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 版本号 | version | M | 4.0.0.0 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 交易类型 | txn_type | M | 取值0431 |
05 | 交易子类 | txn_sub_type | M | 89 |
06 | 加密数据类型 | data_type | M | data_type =xml或json |
07 | 加密数据 | data_content | M | 具体参数如下加密数据。 |
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 交易子类 | txn_sub_type | M | 89 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 商户订单号 | trans_id | M | 商户发起的支付订单号 |
05 | 商户流水号 | trans_serial_no | M | 8-20 位字母和数字,每次请求都不可重复 |
06 | 接入类型 | biz_type | C | 其他:不填写和默认0000,表示为储蓄卡支付 |
07 | 请求方保留域 | req_reserved | O | |
08 | 附加字段 | additional_info | O | 长度不超过 128 位 |
2.3.6.3 应答报文
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 应答码 | resp_code | M | 0000表示交易成功,仅代表查询订单状态成功,不代表订单支付成功,具体订单什么状态需要看state的值,具体参考下面state各状态代表的含义 |
02 | 应答信息 | resp_msg | M | |
03 | 商户订单号 | trans_id | R | 商户订单号 |
04 | 终端号 | terminal_id | R | |
05 | 交易类型 | txn_type | R | 取值0431 |
06 | 交易子类 | txn_sub_type | R | 89 |
07 | 数据类型 | data_type | R | xml/json |
08 | 版本号 | version | O | |
09 | 附加字段 | additional_info | O | |
10 | 预留字段 | req_reserved | O | |
11 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
12 | 商户流水号 | trans_serial_no | R | 8-20 位字母和数字,每次请求都不可重复 |
13 | 接入类型 | biz_type | R | 默认0000 |
14 | 订单状态 | state | R | 1:取消成功 2:取消失败 |
2.3.7 转账支付订单银行流水查询接口
2.3.7.1 交易URL
测试环境地址:https://vgw.baofoo.com/cutpayment/api/backTransRequest
正式环境地址:https://public.baofoo.com/cutpayment/api/backTransRequest
2.3.7.2 请求报文
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 版本号 | version | M | 4.0.0.0 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 交易类型 | txn_type | M | 取值0431 |
05 | 交易子类 | txn_sub_type | M | 90 |
06 | 加密数据类型 | data_type | M | data_type =xml或json |
07 | 加密数据 | data_content | M | 具体参数如下加密数据。 |
08 | 商户订单号 | trans_serial_no | M | 商户订单号 |
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 交易子类 | txn_sub_type | M | 90 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 支付金额 | order_money | O | 单位:分 |
05 | 收款方账户号 | payee_acct_code | M | |
06 | 付款方账户号 | payer_acct_code | M | |
07 | 付款方开户名 | payer_user_name | M | |
08 | 请求方保留域 | req_reserved | O | |
09 | 附加字段 | additional_info | O |
2.3.7.3 应答报文
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 应答信息 | resp_msg | M | 填写具体的应答信息 |
02 | 商户订单号 | trans_serial_no | R | 商户订单号 |
03 | 终端号 | terminal_id | R | |
04 | 交易类型 | txn_type | R | 取值0431 |
05 | 交易子类 | txn_sub_type | R | 90 |
06 | 数据类型 | data_type | R | xml/json |
07 | 版本号 | version | O | |
08 | 附加字段 | additional_info | O | |
09 | 预留字段 | req_reserved | O | |
10 | 银行流水信息 | bank_flow_detial | C | 成功时返回LIST |
bankFlowDetials | ||||
01 | 支付金额 | order_money | M | 单位:分 |
02 | 收款方账户号 | payee_acct_code | M | |
03 | 付款方账户号 | payer_acct_code | M | |
04 | 付款方开户名 | payer_user_name | M | |
05 | 银行流水号 | bank_serial_no | M | |
06 | 银行到账时间 | bank_time | M | |
07 | 银行附言 | remark |
2.3.8 异步通知流水信息
2.3.8.1 功能说明
异步通知银行到账流水信息
2.3.8.2 应答报文(宝付返回报文)
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 数据域 | data_content | M | 加密数据 |
加密数据
请求响应结果的数据类型根据请求参数字段“data_type”来决定,输出内容包括
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 应答码 | resp_code | M | 具体参见附录1:应答码 |
02 | 应答信息 | resp_msg | M | 填写具体的应答信息 |
03 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
04 | 终端号 | terminal_id | M | |
05 | 支付金额 | order_money | M | 单位:分 |
06 | 收款方账户号 | payee_acct_code | M | |
07 | 付款方账户号 | payer_acct_code | M | |
08 | 付款方开户名 | payer_user_name | M | |
09 | 银行流水号 | bank_serial_no | M | |
10 | 银行到账时间 | bank_time | M | |
11 | 银行附言 | bank_remark | C |
2.3.9 转账支付订单银行流水查询接口(按时间段查询)
查询时间段内未匹配的转账流水
2.3.9.1 交易URL
测试环境地址:https://vgw.baofoo.com/cutpayment/api/backTransRequest
正式环境地址:https://public.baofoo.com/cutpayment/api/backTransRequest
2.3.7.2 请求报文
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 版本号 | version | M | 4.1.0.0 |
02 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 交易类型 | txn_type | M | 取值0431 |
05 | 交易子类 | txn_sub_type | M | 90 |
06 | 加密数据类型 | data_type | M | data_type =xml或json |
07 | 加密数据 | data_content | M | 具体参数如下加密数据。 |
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 交易子类 | txn_sub_type | M | 90 |
03 | 商户号 | member_id | M | 宝付提供给商户的唯一编号 |
03 | 终端号 | terminal_id | M | |
04 | 收款方账户号 | payee_acct_code | M | |
05 | 付款方账号 | payer_acct_code | C | 版本号传4.0.0.0 时必填 |
06 | 查询交易开始时间 | pay_start_time | M | yyyyMMddHHmmss |
07 | 查询交易结束时间 | pay_end_time | M | yyyyMMddHHmmss |
08 | 请求方保留域 | req_reserved | O | |
09 | 附加字段 | additional_info | O | |
10 | 商户订单号 | trans_serial_no | M | 商户订单号 |
2.3.9.3 应答报文
序号 | 参数含义 | 参数名称 | 必填 | 参数备注 |
---|---|---|---|---|
01 | 应答信息 | resp_msg | M | 填写具体的应答信息 |
02 | 商户订单号 | trans_serial_no | R | 商户订单号 |
03 | 终端号 | terminal_id | R | |
04 | 交易类型 | txn_type | R | 取值0431 |
05 | 交易子类 | txn_sub_type | R | 90 |
06 | 数据类型 | data_type | R | xml/json |
07 | 版本号 | version | O | |
08 | 附加字段 | additional_info | O | |
09 | 预留字段 | req_reserved | O | |
10 | 银行流水信息 | bank_flow_detial | C | 成功时返回LIST |
bankFlowDetials | ||||
01 | 支付金额 | order_money | M | 单位:分 |
02 | 收款方账户号 | payee_acct_code | M | |
03 | 付款方账户号 | payer_acct_code | M | |
04 | 付款方开户名 | payer_user_name | M | |
05 | 银行流水号 | bank_serial_no | M | |
06 | 银行到账时间 | bank_time | M | |
07 | 银行附言 | remark |
2.3.10 转账支付订单号异步通知
2.3.10.1 功能说明
该接口异步通知场景是针对用户通过网银将交易资金付款到商户的收款账户(我司给商户分配的收款账户),我司收到来账通知后,帮商户完成交易资金收单,收单成功后将用户转账信息异步通知给商户。
2.3.10.2 通知报文
member_id= 100000178&terminal_id=1000938&data_content=09f27e40024994307c854b5bff54fdbb79e7ed9900e6013e58a816e31ef39088f42417a5d87d05e01508b93bea5be2af8fa0562b8259b07eff3fb61fee70d69a5550561731b6bf1319a98091180490d6fd783af72d20e7bf53e3b924f6455f93d7234fff06fef004f05e6795903e21535a1b19fa75473fc99a8b8ff2aadc146f85bf2bb168ccfa724a77e24f4aea12ed0634b4810feed3c1c799bdbd03b98c8378ca5fa68efd1bccd54d8f9a7ad80912f8e5c29ff74f0b8bef247c4e4319f8778366f06f3b547f9586bf229e3b15bd38523999bb58f9c11fd68df33da5ad5d99f6a528c69b178248804da25b082ab08f9c504a4db70139f1a540614fa21cebb3
解密后报文
- Json格式
{ "memberTransId":"test0000000000a01", "orderMoney":"1.01", "state":"1", "succTime":"20170808143943", "payerAcctCode":"20170808143943", "payerUserName":"20170808143943", "payeeAcctCode":"20170808143943", "transFee":"0.23" }
加密数据
序号 | 域名 | 变量名 | 必填 | 备注 |
---|---|---|---|---|
01 | 商户订单号 | memberTransId | M | |
02 | 订单金额 | orderMoney | M | 金额(元) |
03 | 付款方账户号 | payerAcctCode | M | |
04 | 付款方户名 | payerUserName | M | |
05 | 收款方账户号 | payeeAcctCode | M | |
06 | 成功时间 | succTime | M | yyyyMMddHHmmss |
07 | 手续费 | transFee | M | 单位元 |
注:
宝付将掉单或超时的订单取出,补发支付结果(结果有成功和失败,不是仅仅发支付成功的订单,请商户务必要根据应答码判断支付结果是成功还是失败,再进行正确的处理),以GET和POST方式发送到商户配置的接收地址,商户接收到支付结果,并且进行相应处理之后,需要商户接收通知的地址在页面上输出 OK 表示接收成功<除了 OK 无任何其他内容>,告诉宝付已经成功接收并处理完毕,宝付系统在未得到商户接收通知成功的反馈时,将通过重发机制再次通知商户(重发次数 2~10 次,请以第一次收到的支付成功的消息为准,避免进行多次充值或支付),直到商户接收成功或达到最大重发次数为止。
附录
1 应答码
- 交易成功类
错误码 | 含义 |
---|---|
0000 | 成功 |
BF00114 | 订单已支付成功,请勿重复支付 |
BF00338 | 分账成功 |
BF00339 | 已分账 |
- 交易结果暂未知,需查询类
错误码 | 含义 |
---|---|
BF00100 | 系统异常,请联系宝付 |
BF00112 | 系统繁忙,请稍后再试 |
BF00113 | 交易结果未知,请稍后查询 |
BF00115 | 交易处理中,请稍后查询 |
BF00144 | 该交易有风险,订单处理中 |
BF00202 | 交易超时,请稍后查询 |
BF00399 | 订单已存在,请勿重复提交 |
- 交易失败,无需查询类
2 银行编码
银行代码 | 银行名称 |
---|---|
ICBC | 中国工商银行 |
ABC | 中国农业银行 |
CCB | 中国建设银行 |
BOC | 中国银行 |
BCOM | 中国交通银行 |
CIB | 兴业银行 |
CITIC | 中信银行 |
CEB | 中国光大银行 |
PAB | 平安银行 |
PSBC | 中国邮政储蓄银行 |
SHB | 上海银行 |
SPDB | 浦东发展银行 |
CMBC | 民生银行 |
CMB | 招商银行 |
GDB | 广发银行 |
HXB | 华夏银行 |
HZB | 杭州银行 |
BOB | 北京银行 |
NBCB | 宁波银行 |
JSB | 江苏银行 |
ZSB | 浙商银行 |
3 交易子类
取值 | 交易子类 |
---|---|
40 | 转账支付订单查询 |
88 | 转账支付 |
35 | 分账结果查询 |
89 | 转账支付订单取消 |
90 | 转账支付订单银行流水查询 |
4 匹配码规则
规则:2位的商户编码 + 36进制编码(当前时间与基准时间差36进制转大写)
注:1.商户编码由宝付生成并提供,请联系宝付技术支持
2. 36进制编码规则及demo请联系宝付技术支持
5 订单重复性校验
宝付为了确保交易能够准确的通知到商户,有可能会重复发送通知消息,为此宝付提醒商户,采取正确的防重复校验。
大多数校验通知都采取先查询后更新的方式,这种方式存在一个很大的漏洞,当多个通 知请求在很短的一个时间内达到时,查询数据有可能是脏数据,导致订单重复更新,后续工 作重复执行。
对于此种情况,宝付结合自身校验情况,分享两个校验方式。
1) 如果是单线程或者订单资源在一个共享区域,那么可以采取锁定资源的方式,每次 调用加锁,每次调用完毕解锁。
2) 大部分数据都存在数据库,宝付绝大多数都是这种情况,利用数据库的特性来控制, 在我们调用数据库更新信息时,数据库会返回给我们更新条目数,我们利用这个特性,这样 操作,当我们更新订单时,把这个订单的原始状态作为条件进行更新,当我们短时间内操作 更新时,第二次更新必然不成功,因为条件不满足了,状态变了,那么数据库在第二次就会 返回更新数量为0,这样我们就发现问题了,这就是熟称的“乐观锁”。
最后编辑:xiaofeng 更新时间:2025-01-09 17:41