用于支付宝个人协议签约二次确认生效, 需要先调用alipay.user.agreement.page.sign (支付宝个人协议页面签约接口)暂存协议, 再调用本接口将协议推生效.
| 环境 | HTTPS请求地址 |
|---|---|
| 正式环境 | https://openapi.alipay.com/gateway.do |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| app_id | String | 是 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
| method | String | 是 | 128 | 接口名称 | alipay.user.agreement.sign.effect |
| format | String | 否 | 40 | 仅支持JSON | JSON |
| charset | String | 是 | 10 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
| sign_type | String | 是 | 10 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 | RSA2 |
| sign | String | 是 | 344 | 商户请求参数的签名串,详见签名 | 详见示例 |
| timestamp | String | 是 | 19 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" | 2014-07-24 03:07:50 |
| version | String | 是 | 3 | 调用的接口版本,固定为:1.0 | 1.0 |
| notify_url | String | 否 | 256 | 支付宝服务器主动通知商户服务器里指定的页面http/https路径。 | http://api.test.alipay.net/atinterface/receive_notify.htm |
| app_auth_token | String | 否 | 40 | 详见应用授权概述 | |
| biz_content | String | 是 | - | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| personal_product_code | String | 可选 | 64 | 协议产品码,商户和支付宝签约时确定,商户可咨询技术支持。 | GENERAL_WITHHOLD ING_P |
| alipay_user_id | String | 可选 | 32 | 用户的支付宝账号对应的支付宝唯一用户号,以2088开头的16位纯数字组成;
本参数与alipay_logon_id不可同时为空,若都填写,则以本参数为准,优先级高于alipay_logon_id。 |
2088101122675263 |
| alipay_logon_id | String | 可选 | 100 | 用户的支付宝登录账号,支持邮箱或手机号码格式。本参数与alipay_user_id 不可同时为空,若都填写,则以alipay_user_id为准。 | abx@alitest.com |
| sign_scene | String | 可选 | 64 | 签约协议场景,商户和支付宝签约时确定,商户可咨询技术支持。
当传入商户签约号external_sign_no时,场景不能为空或默认值DEFAULT|DEFAULT。 该值需要与系统/页面签约接口调用时传入的值保持一致。 |
INDUSTRY|MEDICAL |
| external_agreement_no | String | 可选 | 32 | 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。
格式规则:支持大写小写字母和数字,最长32位。 |
test |
| third_party_type | String | 可选 | 32 | 签约第三方主体类型。对于三方协议,表示当前用户和哪一类的第三方主体进行签约。
取值范围: 1. PARTNER(平台商户); 2. MERCHANT(集团商户),集团下子商户可共享用户签约内容; 默认为PARTNER。 |
PARTNER |
| agreement_no | String | 可选 | 64 | 支付宝系统中用以唯一标识用户签约记录的编号(用户签约成功后的协议号),如果传了该参数,其他参数会被忽略. | 20170322450983769228 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| 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= |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| alipay_logon_id | String | 必填 | 100 | 支付宝账号: 脱敏的支付宝账号. | test***ali@alipay.net |
| valid_time | String | 必填 | 32 | 协议生效时间,格式为yyyy-MM-dd HH:mm:ss。 | 2017-05-24 15:00:40 |
| invalid_time | String | 必填 | 32 | 协议失效时间,格式为yyyy-MM-dd HH:mm:ss。 | 2117-05-24 00:00:00 |
| pricipal_type | String | 必填 | 10 |
签约主体类型。
CARD:支付宝账号 CUSTOMER:支付宝用户 |
CARD |
| principal_id | String | 必填 | 32 |
签约主体标识。
当principal_type为CARD 时,该字段为支付宝用户号; 当principal_type为CUSTOMER时,该字段为支付宝用户标识。一个用户可能有多个支付宝账号,即多个支付宝用户号,但只有一个是支付宝用户标识。 一个支付宝账号对应一个支付宝唯一用户号(以2088开头的16位纯数字组成)。 |
2088101122675263 |
| sign_time | String | 必填 | 32 | 协议签约时间,格式为yyyy-MM-dd HH:mm:ss。 | 2017-05-24 15:00:40 |
| sign_scene | String | 必填 | 64 | 签约协议的场景。 | INDUSTRY|CARRENTAL |
| agreement_no | String | 必填 | 64 | 支付宝用户协议号, 用户签约成功后的支付宝协议号. | 20170322450983769228 |
| third_party_type | String | 必填 | 32 |
签约第三方主体类型。对于三方协议,表示当前用户和哪一类的第三方主体进行签约。
取值范围: 1. PARTNER(平台商户); 2. MERCHANT(集团商户),集团下子商户可共享用户签约内容; 默认为PARTNER。 |
PARTNER |
| status | String | 必填 | 32 |
协议当前状态.
1. TEMP:暂存,协议未生效过; 2. NORMAL:正常; 3. STOP:暂停 |
NORMAL |
| personal_product_code | String | 必填 | 64 | 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。 | GENERAL_WITHHOLDING_P |
| external_agreement_no | String | 选填 | 64 | 商户协议号, 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一). | test |
| external_logon_id | String | 选填 | 100 | 商户登录Id | 小红 |
| zm_open_id | String | 选填 | 64 | 用户的芝麻信用 openId,供商户查询用户芝麻信用使用。 | 268816057852461313538942792 |
| device_id | String | 选填 | 256 | 设备Id | RSED235F875932 |
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayUserAgreementSignEffectRequest request = new AlipayUserAgreementSignEffectRequest();
request.setBizContent("{" +
"\"personal_product_code\":\"GENERAL_WITHHOLD ING_P\"," +
"\"alipay_user_id\":\"2088101122675263\"," +
"\"alipay_logon_id\":\"abx@alitest.com\"," +
"\"sign_scene\":\"INDUSTRY|MEDICAL\"," +
"\"external_agreement_no\":\"test\"," +
"\"third_party_type\":\"PARTNER\"," +
"\"agreement_no\":\"20170322450983769228\"" +
" }");
AlipayUserAgreementSignEffectResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}
{
"alipay_user_agreement_sign_effect_response":{
"msg":"Success",
"code":"10000",
"device_id":"RSED235F875932",
"external_logon_id":"小红",
"third_party_type":"PARTNER",
"external_agreement_no":"test",
"zm_open_id":"268816057852461313538942792",
"principal_id":"2088101122675263",
"sign_time":"2017-05-24 15:00:40",
"agreement_no":"20170322450983769228",
"invalid_time":"2117-05-24 00:00:00",
"personal_product_code":"GENERAL_WITHHOLDING_P",
"valid_time":"2017-05-24 15:00:40",
"pricipal_type":"CARD",
"alipay_logon_id":"test***ali@alipay.net",
"sign_scene":"INDUSTRY|CARRENTAL",
"status":"NORMAL"
},
"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
{
"alipay_user_agreement_sign_effect_response":{
"msg":"Service Currently Unavailable",
"code":"20000",
"sub_msg":"系统繁忙",
"sub_code":"isp.unknow-error"
},
"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| USER_AGREEMENT_NOT_EXIST | 用户协议不存在 | 检查用户协议是否正确 |
| SYSTEM_ERROR | 系统繁忙 | 系统异常, 可原请求参数重试. |
| PRODUCT_CODE_NOT_SUPPORTED_ERROR | 无效的个人产品码 | 商户确认个人产品码填写是否正确 |
| INVALID_PARAMETER | 参数有误 | 参数有误, 请确认传参是否正确 |
| USER_AGREEMENT_STATUS_ABNORMAL | 协议状态不正常, 不允许协议生效操作. | 协议可能已被暂停. |
| USER_AGREEMENT_SIGN_FAIL | 用户协议签约生效失败 | 用户协议签约生效失败. |
| USER_AGREEMENT_PERIOD_CONFILICT | 协议生效周期不匹配 | 已存在的签约生效的协议的生效周期与本次请求不一致. 属于并发异常情况, 请检查商户端协议是否已生效. |
| MAX_SIGN_COUNT_CHECK_FAIL | 用户最大签约次数检查失败 | 用户在商户同场景下签约次数超出商户协议设置次数, 请检查商户端协议数. |
| USER_NOT_EXIST_ERROR | 用户信息不存在 | 检查用户信息是否正确 |
| AUTHOREE_IS_NOT_MATCH | 被授权方不匹配 | 确认商户app_id对应的被授权方与用户协议中的被授权方是否一致 |
| USER_NOT_EXSIT_ERROR | 用户信息不存在 | 检查用户信息是否正确 |
| 参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
|---|---|---|---|---|---|
| app_id | String [] | 必填 | 64 | 应用id, 支付宝分配给开发者的应用Id | 2017060101317939 |
| auth_app_id | String [] | 必填 | 64 | 应用id, 支付宝分配给商户的应用Id | 2017060101317935 |
| external_agreement_no | String [] | 选填 | 32 | 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 | test |
| agreement_no | String [] | 必填 | 64 | 支付宝系统中用以唯一标识用户签约记录的编号。 | 20170502000610755993 |
| personal_product_code | String [] | 必填 | 64 | 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。 | GENERAL_WITHHOLDING_P |
| valid_time | String [] | 必填 | 32 | 用户代扣协议的实际生效时间,格式为yyyy-MM-dd HH:mm:ss。 | 2017-05-20 11:49:19 |
| invalid_time | String [] | 必填 | 32 | 用户代扣协议的失效时间,格式为yyyy-MM-dd HH:mm:ss。 | 2017-05-20 11:49:19 |
| alipay_logon_id | String [] | 必填 | 100 | 支付宝账号, 脱敏的支付宝账号. | test***ali@alipay.net |
| notify_type | String [] | 必填 | 100 | 用户签约成功通知类型 | dut_user_sign |
| sign_scene | String [] | 必填 | 64 | 协议场景, 当前签约的协议场景。 | INDUSTRY|CARRENTAL |
| sign_time | String [] | 必填 | 32 | 签约时间, 支付宝代扣协议的实际签约时间,格式为yyyy-MM-dd HH:mm:ss。 | 2017-05-20 11:49:19 |
| alipay_user_id | String [] | 必填 | 32 | 支付宝用户id, 用户签约的支付宝账号对应的支付宝唯一用户号。以2088开头的16位纯数字组成。 | 2088101143488930 |
| status | String [] | 必填 | 10 |
协议当前状态
1. TEMP:暂存,协议未生效过; 2. NORMAL:正常; 3. STOP:暂停 |
NORMAL |
| external_logon_id | String [] | 选填 | 100 | 用户在商户网站的登录账号,如果商户接口中未传,则不会返回 | 13852852877 |
| device_id | String [] | 选填 | 256 | 设备Id | RSED235F875932 |
| forex_eligible | String [] | 选填 | 10 | 是否海外购汇身份。值:T/F | T |
| zm_open_id | String [] | 选填 | 64 | 用户的芝麻信用openId,供商户查询用户芝麻信用使用。 | 268816057852461313538942792 |
https://www.merchant.com/receive_notify.htm?notify_type=trade_status_sync¬ify_id=91722adff935e8cfa58b3aabf4dead6ibe¬ify_time=2017-02-16 21:46:15&sign_type=RSA2&sign=WcO+t3D8Kg71dTlKwN7r9PzUOXeaBJwp8/FOuSxcuSkXsoVYxBpsAidprySCjHCjmaglNcjoKJQLJ28/Asl93joTW39FX6i07lXhnbPknezAlwmvPdnQuI01HZsZF9V1i6ggZjBiAd5lG8bZtTxZOJ87ub2i9GuJ3Nr/NUc9VeY=&app_id=2017060101317939&auth_app_id=2017060101317935&external_agreement_no=test&agreement_no=20170502000610755993&personal_product_code=GENERAL_WITHHOLDING_P&valid_time=2017-05-20 11:49:19&invalid_time=2017-05-20 11:49:19&alipay_logon_id=test***ali@alipay.net¬ify_type=dut_user_sign&sign_scene=INDUSTRY|CARRENTAL&sign_time=2017-05-20 11:49:19&alipay_user_id=2088101143488930&status=NORMAL&external_logon_id=13852852877&device_id=RSED235F875932&forex_eligible=T&zm_open_id=268816057852461313538942792