通用场景
由商户调用,将商户之前通用代扣产品转移到周期扣的协议产品
公共请求参数
业务请求参数
agreement_no必选string(64)
【描述】支付宝系统中用以唯一标识用户签约记录的编号(用户签约成功后的协议号 ),如果传了该参数,其他参数会被忽略
【示例值】20170322450983769228
target_product_code必选string(64)
【描述】协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。这里指的是需要修改目标产品码的值
【示例值】cycle_pay_auth_p
period_rule_params必选periodruleparams
【描述】周期管控规则参数period_rule_params,在签约周期扣款产品(如cycle_pay_auth_p)时必传。 周期扣款产品,会按照这里传入的参数提示用户,并对发起扣款的时间、金额、次数等做相应限制。
period_type必选string(20)
【描述】周期类型period_type是周期扣款产品必填,枚举值为day和month。
day即扣款周期按天计,month代表扣款周期按自然月。
与另一参数period组合使用确定扣款周期,例如period_type为day,period=30,则扣款周期为30天;period_type为month,period=3,则扣款周期为3个自然月。
自然月是指,不论这个月有多少天,周期都计算到月份中的同一日期。例如1月3日到2月3日为一个自然月,1月3日到4月3日为三个自然月。注意周期类型使用month的时候,计划扣款时间execute_time不允许传28日之后的日期(可以传28日),以此避免有些月份可能不存在对应日期的情况。
day即扣款周期按天计,month代表扣款周期按自然月。
与另一参数period组合使用确定扣款周期,例如period_type为day,period=30,则扣款周期为30天;period_type为month,period=3,则扣款周期为3个自然月。
自然月是指,不论这个月有多少天,周期都计算到月份中的同一日期。例如1月3日到2月3日为一个自然月,1月3日到4月3日为三个自然月。注意周期类型使用month的时候,计划扣款时间execute_time不允许传28日之后的日期(可以传28日),以此避免有些月份可能不存在对应日期的情况。
【枚举值】
自然日: day
自然月: month
【示例值】day
period必选number(8)
【描述】周期数period是周期扣款产品必填。与另一参数period_type组合使用确定扣款周期,例如period_type为day,period=90,则扣款周期为90天。
【示例值】3
execute_time必选string(16)
【描述】首次执行时间execute_time是周期扣款产品必填,即商户发起首次扣款的时间。精确到日,格式为yyyy-mm-dd
结合其他必填的扣款周期参数,会确定商户以后的扣款计划。发起扣款的时间需符合这里的扣款计划。
结合其他必填的扣款周期参数,会确定商户以后的扣款计划。发起扣款的时间需符合这里的扣款计划。
【示例值】2019-01-23
single_amount必选price(32)
【描述】单次扣款最大金额single_amount是周期扣款产品必填,即每次发起扣款时限制的最大金额,单位为元。商户每次发起扣款都不允许大于此金额。
【示例值】10.99
total_amount可选price(32)
【描述】总金额限制,单位为元。如果传入此参数,商户多次扣款的累计金额不允许超过此金额。
【示例值】600
total_payments可选number(8)
【描述】总扣款次数。如果传入此参数,则商户成功扣款的次数不能超过此次数限制(扣款失败不计入)。
【示例值】12
常见请求示例
默认示例
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2");
alipayuseragreementtransferrequest request = new alipayuseragreementtransferrequest();
request.setbizcontent("{"
" \"agreement_no\":\"20170322450983769228\","
" \"target_product_code\":\"cycle_pay_auth_p\","
" \"period_rule_params\":{"
" \"period_type\":\"day\","
" \"period\":3,"
" \"execute_time\":\"2019-01-23\","
" \"single_amount\":10.99,"
" \"total_amount\":600,"
" \"total_payments\":12"
" }"
"}");
alipayuseragreementtransferresponse response = alipayclient.execute(request);
if(response.issuccess()){
system.out.println("调用成功");
} else {
system.out.println("调用失败");
}
说明:本示例仅供参考。
公共响应参数
业务响应参数
execute_time可选string(1000)
【描述】执行时间
【示例值】2019-01-23
period_type可选string(1000)
【描述】周期类型
【示例值】day
amount可选string(1000)
【描述】单次金额限制,单位为元
【示例值】100
total_amount可选string(1000)
【描述】总金额限制,单位为元
【示例值】600
total_payments可选string(1000)
【描述】总支付次数
【示例值】12
period可选string(1000)
【描述】周期
【示例值】7
响应示例
正常示例
异常示例
{
"alipay_user_agreement_transfer_response": {
"code": "10000",
"msg": "success",
"execute_time": "2019-01-23",
"period_type": "day",
"amount": "100",
"total_amount": "600",
"total_payments": "12",
"period": "7"
},
"sign": "eritjkeijkjhkkkkkkkhjereeeeeeeeeee"
}
说明:本示例仅供参考。
公共错误码
业务错误码
错误码 | 错误描述 | 凯发app官方网站的解决方案 |
---|---|---|
user_agreement_not_exist | 用户协议不存在 | 确认用户是否与商户、支付宝签约三方协议 |
invalid_parameter | 参数有误参数异常 | 请检查请求入参 |
product_code_is_invalid | 无效请求产品码,请求产品码必须为周期扣款 | 修改请求目标产品码,目标产品码为周期扣款 |
productcode_already_update | 协议里产品码已经为周期性扣款 | 协议里产品码已经为周期性扣款,不能再修改 |
not_supported_business | 现有协议里产品码已经不是通用代扣 | 请检查协议号是否正确,目前协议号的产品码不是通用代扣 |
system_error | 系统繁忙 | 请重试或者联系凯发app官方网站的技术支持查看 |
merchant_agreement_is_not_exist | 商户协议不存在 | 添加商户协议 |
merchant_status_is_not_normal | 商户协议状态不正常 | 检查商户协议 |
merchant_agreement_is_expired | 商户协议过期了 | 检查商户协议 |
user_agreement_is_out_of_date | 用户协议过期 | 检查用户协议是否过期 |
user_agreement_status_is_expired | 用户协议状态不正常 | 检查用户状态 |