直连代扣机构根据用户个人签约协议,按期按账单请求从用户账户扣款的接口。
| 环境 | HTTPS请求地址 |
|---|---|
| 正式环境 | https://openapi.alipay.com/gateway.do |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| app_id | String | 是 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
| method | String | 是 | 128 | 接口名称 | alipay.ebpp.pdeduct.pay |
| format | String | 否 | 40 | 仅支持JSON | JSON |
| charset | String | 是 | 10 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
| sign_type | String | 是 | 10 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 | RSA2 |
| sign | String | 是 | 256 | 商户请求参数的签名串,详见签名 | 详见示例 |
| timestamp | String | 是 | 19 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" | 2014-07-24 03:07:50 |
| version | String | 是 | 3 | 调用的接口版本,固定为:1.0 | 1.0 |
| app_auth_token | String | 否 | 40 | 详见应用授权概述 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| agreement_id | String | 必须 | 32 | 支付宝代扣协议Id | 1234557890 |
| user_id | String | 必须 | 16 | 用户ID | 2088123411243554 |
| bill_key | String | 必须 | 30 | 户号,缴费单位用于标识每一户的唯一性的 | 262327843 |
| pid | String | 必须 | 16 | 商户PartnerId | 2088611103588892 |
| out_order_no | String | 必须 | 30 | 商户外部业务流水号 | 18882329324 |
| pay_amount | Price | 必须 | 30 | 扣款金额,支付总金额,包含滞纳金 | 23.00 |
| fine_amount | Price | 必须 | 30 | 滞纳金 | 2.00 |
| bill_date | String | 可选 | 20 | 账期 | 201410 |
| agent_channel | String | 必须 | 30 | 渠道码,如用户通过机构通过服务窗进来签约则是PUBLICFORM,此值可随意传,只要不空就行 | PUBLICFORM |
| agent_code | String | 必须 | 20 | 二级渠道码,预留字段 | SECOND |
| memo | String | 可选 | 150 | 备注信息 | memo |
| extend_field | String | 可选 | 3000 | 扩展参数。必须以key value形式定义,
转为json为格式:{"key1":"value1","key2":"value2", "key3":"value3","key4":"value4"} 后端会直接转换为MAP对象,转换异常会报参数格式错误 |
{"key1":"value1","key2":"value2", "key3":"value3","key4":"value4"} |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| code | String | 是 | - | 网关返回码,详见文档 | 40004 |
| msg | String | 是 | - | 网关返回码描述,详见文档 | Business Failed |
| sub_code | String | 否 | - | 业务返回码,详见文档 | ACQ.TRADE_HAS_SUCCESS |
| sub_msg | String | 否 | - | 业务返回码描述,详见文档 | 交易已被支付 |
| sign | String | 是 | - | 签名,详见文档 | DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo= |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| agreement_id | String | 必填 | 32 | 支付宝代扣协议ID | 1231232132 |
| out_order_no | String | 必填 | 30 | 商户代扣业务流水 | 213134234 |
| bill_no | String | 必填 | 32 | 支付宝订单流水号 | 201323423234 |
| result_status | String | 必填 | 2 |
订单支付状态。
0:未知 1:成功 2:失败 |
1 |
| extend_field | String | 必填 | 3000 | 扩展参数 | {"school_no":"SHNU", "student_id":"20130516"} |
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayEbppPdeductPayRequest request = new AlipayEbppPdeductPayRequest();
request.setAgreementId("1234557890");
request.setUserId("2088123411243554");
request.setBillKey("262327843");
request.setPid("2088611103588892");
request.setOutOrderNo("18882329324");
request.setPayAmount(23.00);
request.setFineAmount(2.00);
request.setBillDate("201410");
request.setAgentChannel("PUBLICFORM");
request.setAgentCode("SECOND");
request.setMemo("memo");
request.setExtendField("{"key1":"value1","key2":"value2",
"key3":"value3","key4":"value4"}");
AlipayEbppPdeductPayResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}
{
"alipay_ebpp_pdeduct_pay_response":{
"agreement_id":"1231232132",
"result_status":"1",
"out_order_no":"213134234",
"extend_field":"{\"school_no\":\"SHNU\",\r\n\"student_id\":\"20130516\"}",
"bill_no":"201323423234"
}
}
{
"alipay_ebpp_pdeduct_pay_response":{
"msg":"Service Currently Unavailable",
"code":"20000",
"sub_msg":"系统繁忙",
"sub_code":"isp.unknow-error"
},
"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| AGREEMENT_ID_IS_NULL | 协议ID为空 | 传协议ID |
| AGENT_CHANNEL_IS_NULL | 用户操作渠道为空 | 必传AGENT_CHANNEL,传的值为PUBLICFORM(服务窗) |
| BILL_KEY_IS_NULL | 户号为空 | 户号必传 |
| INST_ORDER_NO_IS_NULL | 机构的订单流水号 | 机构订单流水号,对接的isv必须要传,用于控制幂等 |
| DEDUCT_SIGN_INFO_NOT_EXIST | 协议不存在,已被删除 | 机构需要检查自身协议是否和支付宝的协议存在单边账的问题 |
| QUERY_DEDUCT_SIGN_INFO_ERROR | 查询代扣协议错误 | 查询协议的时候出现超时或网络异常时,建议再次重试 |
| INVOKE_PAYACCEPTANCE_EXCEPTION | 调用支付时支付异常 | 一般是支付过程中出现了异常,主要是用户金额不足 |