# 代付接口
## 1. 申请代付
> 接口描述
商户通过代付接口发起代付申请,支付系统收到请求后同步返回申请结果,申请成功并不代表代付成功。
商户有两种方式确定代付结果:
1)发起代付时传递代付结果回调地址,支付系统处理代付确定结果后会向改地址发起通知请求。
2)商户系统客户主动发起代付查询,以查询到的最终结果确定代付是否成功。
注意:商户访问该接口需要申请IP白名单。
> 接口链接
URL地址:{payUrl}/agentpay/apply
> 请求参数
字段名变量名必填类型示例值描述商户IDmchId是String(30)1000000010支付中心分配的商户号商户代付单号mchOrderNo是String(30)A201907011234商户代付单号代付金额amount是int1000代付金额, 单位分账户属性accountAttr否String(2)0账户属性:0-对私,1-对公,默认对私银行名称bankName是String(128)中国工商银行收款卡的银行名称收款人姓名accountName是String(64)张三收款人姓名收款人卡号accountNo是String(64)622848988712341234收款人卡号开户行所在省份province否String(32)北京市开户行所在省份开户行所在市city否String(32)北京市开户行所在市联行号bankNumber否String(64)联行号代付结果回调URLnotifyUrl否String(128)代付结果回调URL备注remark否String(128)备注扩展域extra否String(128)扩展域请求时间reqTime是String(30)20190723141000请求接口时间, yyyyMMddHHmmss格式接口版本version是String(3)1.0接口版本号,固定:1.0签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法> 响应结果
字段名变量名必填类型示例值描述返回状态码retCode是String(16)00-处理成功,其他-处理有误,详见错误码返回信息retMsg否String(128)签名失败具体错误原因,例如:签名失败、参数格式校验错误##### 以下字段在retCode=0 时有返回
字段名变量名必填类型示例值描述代付订单号agentpayOrderId是String(32)T201990131313代付订单号状态status是String(2)2状态:0-待处理,1-处理中,2-成功,3-失败,4-待人工处理手续费fee是String(30)10手续费,单位分转账提示transMsg否String(128)转账提示扩展域extra否String(128)扩展域签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法## 2. 代付确认
> 接口描述
当商户通过接口发起代付请求后,如果商户开启代付二次确认,那么支付平台会向商户配置的代付确认地址发起请求,等待商户系统返回确认结果。
> 接口链接
该链接是商户在支付平台配置的二次确认地址。
> 请求参数
字段名变量名必填类型示例值描述商户订单号mchOrderNo是String(32)M201990131313商户订单号金额amount是int10代付发起金额,单位分> 响应结果
商户业务系统处理后同步返回给支付平台,返回字符串 ok 则表示商户系统确认该代付订单正确存在,返回 fail 则表示确认不存在,返回其他或无响应则支付平台会每延迟10秒再发请求(最多3次)。
`注意:返回的字符串必须是小写,且前后不能有空格,不能有换行。返回ok则继续执行代付,否则代付退回商户`
## 3. 查询代付订单
> 接口描述
商户通过该接口查询代付订单结果,并根据状态结果进一步处理业务逻辑。
> 接口链接
URL地址:{payUrl}/agentpay/query\_order
> 请求参数
字段名变量名必填类型示例值描述商户IDmchId是String(30)1000000010支付中心分配的商户号商户订单号mchOrderNo否String(32)M1000000010商户订单号, 与 代付订单号 二选一代付订单号agentpayOrderId否String(32)T1000000010代付订单号, 与 商户订单号 二选一请求时间reqTime是String(30)20190723141000请求接口时间, yyyyMMddHHmmss格式接口版本version是String(3)1.0接口版本号,固定:1.0签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法> 响应结果
字段名变量名必填类型示例值描述返回状态码retCode是String(16)00-处理成功,其他-处理有误,详见错误码返回信息retMsg否String(128)签名失败具体错误原因,例如:签名失败、参数格式校验错误##### 以下字段在retCode=0 时有返回
字段名变量名必填类型示例值描述代付订单号agentpayOrderId是String(32)T201990131313代付订单号商户订单号mchOrderNo是String(32)M201990131313商户订单号代付金额amount是int1000代付金额,单位分手续费fee是int10手续费,单位分状态status是String(2)2状态:0-待处理,1-处理中,2-成功,3-失败,4-待人工处理转账提示transMsg否String(128)转账提示签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法## 4. 查询余额
> 接口描述
商户可通过该接口查询代付账户余额。
> 接口链接
URL地址:{payUrl}/agentpay/query\_balance
> 请求参数
字段名变量名必填类型示例值描述商户IDmchId是String(30)1000000010支付中心分配的商户号请求时间reqTime是String(30)20190723141000请求接口时间, yyyyMMddHHmmss格式接口版本version是String(3)1.0接口版本号,固定:1.0签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法> 响应结果
字段名变量名必填类型示例值描述返回状态码retCode是String(16)00-处理成功,其他-处理有误,详见错误码返回信息retMsg否String(128)签名失败具体错误原因,例如:签名失败、参数格式校验错误##### 以下字段在retCode=0 时有返回
字段名变量名必填类型示例值描述代付余额agentpayBalance是int10000代付余额可用代付余额availableAgentpayBalance是int10000可用代付余额签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法## 5. 代付结果通知
> 接口描述
当代付处理完成后,支付系统会通过该接口向商户发起通知。
> 接口链接
该链接是商户通过代付申请接口提交的参数notifyUrl设置,如果无法访问链接,商户业务系统将无法接收到支付平台的通知。
> 通知参数
字段名变量名必填类型示例值描述代付订单号agentpayOrderId是String(32)T201990131313代付订单号商户订单号mchOrderNo是String(32)M201990131313商户订单号状态status是String(2)2状态:0-待处理,1-处理中,2-成功,3-失败,4-待人工处理手续费fee是int10手续费,单位分转账提示transMsg否String(128)转账提示扩展域extra否String(128)扩展域通知请求时间reqTime是String(30)20190723141000通知请求时间,yyyyMMddHHmmss格式签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法> 响应结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为60/120/180/240/300,单位:秒)
`注意:返回的字符串必须是小写,且前后不能有空格,不能有换行。`
## 6. 错误码
RetCode描述0成功9999业务异常,具体错误详见RetMsg字段0100商户签名异常0010系统错误0011请使用post方法0012post数据为空0013签名错误0014参数错误0015商户不存在0110第三方超时0111第三方异常0112订单不存在0113订单已支付0114商品不存在0115价格不对0116物品数量不对0117过程返回2550118DB错误0119支付中心没有对应的渠道0120修改订单状态失败
