开发者社区> 问答> 正文

#支付宝 周期扣款如何设置周期规则?

周期扣款如何设置周期规则

展开
收起
保持可爱mmm 2020-05-07 09:15:59 4270 0
1 条回答
写回答
取消 提交回答
  • 周期扣款是根据周期性的方式进行扣款的,因此可以通过period_rule_params(周期管控规则参数)设置。

    一、周期规则参数说明

    1、period_type(必传):周期扣款类型,枚举值为DAY和MONTH。

    2、period(必传):与period_type结合,为周期扣款的单位时间。

    如period_type为DAY,period=90,则扣款周期为90天。

    3、execute_time(必传):首次扣款执行时间,精确到日,格式为yyyy-MM-dd。

    4、single_amount(必传):单次扣款最大金额,即每次发起扣款时限制的最大金额每次发起扣款时限制的最大金额

    5、total_amount(选填):总金额限制,即商户多次扣款的累计金额不允许超过此金额。

    6、total_payments(选填):总扣款次数,即商户成功扣款的次数不能超过此次数限制(扣款失败不计入)。

    二、注意事项 1、周期为天

    period_type=DAY,扣款周期按天计

    (1)周期扣款最短周期为7天,因此设置周期为日时,period参数值最少为7天。

    (2)周期为日时,execute_time可以设置为任意一天,对每月的29-31不进行限制。

    2、周期为月

    period_type=MONTH,扣款周期按自然月计。

    自然月是指,不论这个月有多少天,周期都计算到月份中的同一日期。

    例如1月3日到2月3日为一个自然月,1月3日到4月3日为三个自然月。

    (1)周期为月时,execute_time设置时间不允许传28日之后的日期(即可以传1-28日,但是29-31不可设置)。

    以此避免有些月份可能不存在对应日期的情况(如闰年的2月只有28年)。

    3、扣款时间

    根据execute_time和周期时间决定每次的扣款时间,每次扣款允许商户在约定日期之前3天开始扣款。

    案例:period_type=MONTH,period=1,execute_time=2020-02-01。

    (1)首次扣款时间范围为2020-02-01、2020-01-31、2020-01-30、2020-01-29。

    (2)下一周期扣款时间范围为2020-03-01、2020-02-29、2020-02-28、2020-02-27。

    (3)首次扣款时间不受接口请求时间(timestamp)影响,execute_time=2020-02-01,timestamp为2020-04-01也是没有关系的。

    (4)扣款时间希望为每月的最后几天,可如示例通过设置execute_time为每月的1号,可提前3天发起扣款。

    (5)如果扣款接口请求时间(timestamp)为2020-03-01 23:59:59,请求到支付宝时已经为该月的2号,实际是无法扣款成功的,具体是否扣款成功,时间是以扣到款的时间为准的,而不是接口请求的时间。

    如果出现扣款期间内失败,或者忘记扣款等,可通过【alipay.user.agreement.executionplan.modify(周期性扣款协议执行计划修改接口)】延迟扣款时间。

    4、扣款金额

    周期扣款对用户额度限制:对每个用户的单笔扣款不超过 100 元,当日扣款不超过 1000 元,当月扣款不超过 30000 元。

    (1)single_amount:参数值不大于100 元。

    (2)total_amount:根据业务需要周期计算最大扣款金额。

    如周期为1个月,需扣款1年(即12次),因此total_amount参数值不大于12*100=1200,具体根据自己需求计算。

    5、扣款次数

    (1)一个周期内只能成功扣款一次。

    (2)由于周期扣款默认没有设置有效期,因此不限制扣款总次数。

    (3)设置total_payments,如果商户已经达到total_payments的扣款次数,周期扣款是不会自动解约的,但是(total_payments+1次)调用扣款接口,会报错:ACQ.CYCLE_PAY_TOTAL_TIMES_EXCEED(周期扣款的总次数超过签约时限制)。

    6、撤销及退款逻辑

    周期扣款一个周期内只能扣一次款大,但是扣款后会使用到撤销接口或者退款接口。

    (1)【alipay.trade.cancel】交易撤销后,当期内还可以发起一次扣款。

    (2)【alipay.trade.refund】交易退款则不允许再次发起扣款。

    7、签约次数

    同一个商户下,同一个用户最多可签约10套周期扣款协议。

    必传external_agreement_no(外部商户签约号)和sign_scene(协议签约场景)。

    2020-05-07 11:43:53
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载