alipay.user.agreement.sign.effect (支付宝个人协议签约生效接口)

用于支付宝个人协议签约二次确认生效, 需要先调用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

请求示例

  • JAVA
  • .NET
  • PHP
  • HTTP请求源码
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("调用失败");
}

响应示例

  • JSON示例
{
	"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"
}

异常示例

  • JSON示例
{
	"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&notify_id=91722adff935e8cfa58b3aabf4dead6ibe&notify_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&notify_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

异步通知验签方式

返回
顶部