直连代扣机构根据用户个人签约协议,按期按账单请求从用户账户扣款的接口。
环境 | 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 | 调用支付时支付异常 | 一般是支付过程中出现了异常,主要是用户金额不足 |