文档中心 > 花呗分期集成方案

花呗分期买家每期费用与本金计算规则

更新时间:2017/04/18 访问次数:1780

 

我们提供了精简算法,存在一定误差(小于0.1元)。也有精准的算法,但规则相对复杂。根据行业经验,用户不会特别在意极小的误差显示,商户可自行选择采用精简算法还是精准算法。

精简算法

1、费率计算精度

费率计算结果保留2位小数,如果2位小数之后,则四舍五入;

2、用户每期还款本金

每期还款本金 = 订单总金额/期数

3、用户每期手续费

每期手续费=(订单总金额*手续费率)/期数

4、用户每期还款金额

每期还款金额=(订单总金额+订单总金额*手续费率)/期数

5、费率案例

例:订单总金额为1000元,用户选择3期分期,用户承担手续费,3期分期费率为2.3%;

每期还款本金= 1000/3=333.33元

每期手续费=(1000*2.3%)/3=7.67元

每期还款金额=(1000+1000*2.3%)/3=341元

以上均为保留精度后结果。

 

 精准算法

1、买家费率精度规则

  1. a) 买家费率规则为:以小数表示,小数点后,保留6位有效数字。如果小数点后,超过6位,则四舍五入;

如:假设 3期,卖家承担百分之五十时,买家费率是2.30%。

   则买家费率小数表现形式为:

2.30/100 = 0.023000

 

通过2.30得到0.023000 的java实现举例:

BigDecimal feeRate = new BigDecimal(2.30). divide(new BigDecimal("100"), 6,BigDecimal.ROUND_HALF_UP);

2、买家每期手续费计算规则

a) 计算公式:买家每期费用 = (本金*买家费率)/期数
b) 计算步骤举例
  (1)把本金单位转化成分 cent。
  (2)用转化为分后的金额乘以买家费率,得到以分表示的买家总手续费

        Java实现举例:
        BigDecimal totalFeeInDecimal = BigDecimal.valueOf(cent).multiply(feeRate);
 (3)对费用进行取整(取整规则为ROUND_HALF_EVEN)

         Java实现举例:
         long totalFeeInLong = totalFeeInDecimal.setScale(0,   BigDecimal.ROUND_HALF_EVEN).longValue()。

         ROUND_HALF_EVEN:银行家舍去法,四舍六入,逢五看左边,左边为奇数进位,左边为偶数舍去。
 (4)计算每期费用(用总费用/总期数,结果以分表示,向下取整,余数加在第一期还款中)

        Java实现举例:
        BigDecimal eachFee = BigDecimal.valueOf(totalFeeInLong).divide(new BigDecimal(“期数”), BigDecimal.ROUND_DOWN) 。


3、买家每期应还本金计算规则


    a) 计算公式:每期应还本金 = 本金/期数
    b) 计算步骤举例
      (1)把本金单位转化成分 cent。
      (2)计算每期本金(用总金额/总期数,结果以分表示,向下取整,余数加在第一期还款中)

       Java实现举例:
       BigDecimal eachPrin = BigDecimal.valueOf(cent).divide(new BigDecimal(“期数”), BigDecimal.ROUND_DOWN) 。


4、买家每期应还费用和本金之和计算规则
    b) 计算公式:每期应还费用和本金之和 = 每期应还费用+每期应还本金
    c) 计算步骤举例
     (1)根据上述(二)、(三)分别计算出每期应还费用和每期应还本金;
    (2)将每期应还费用和每期应还本金相加,结果以分表示。

          Java实现举例:
          BigDecimal prinAndFee = eachFee.add(eachPrin);


5、将金额从分转化为元的规则(人民币,小数点后取两位)

    Java实现举例:
    BigDecimal yuan = BigDecimal.valueOf(cent,2);

TIPS:举例步骤中的代码示例均为java语言示例,其他开发语言的实现请咨询查资料。BigDecimal用的是java.math.BigDecima

 

示例:

订单金额533元,选择花呗分期支付,分6期,买家承担100%分期手续费。

1、6期费率,以小数表示,小数点后,保留6位有效数字:4.5/100 = 0.045000。

2、本金=53300分,计算总手续费

  53300 * 0.045000 = 2398.5

根据取整规则ROUND_HALF_EVEN,小数为5,左边是偶数8,舍去,得到总手续费2398 。

3、计算总支付金额

总支付金额=本金+总手续费 = 53300+2398 = 556.98元。

4、计算每期手续费

每期手续费 = 总手续费/总期数 = 2398/6 = 399.666666,

向下取整 399分=3.99元。

余数 = 2398-399*6=4,这4分钱加到第一期还款中。

所以,第一期手续费是4.03元,后面每期手续费3.99元。

5、计算每期应还本金

每期应还本金 = 本金/总期数 = 53300/6 = 8883.333333,向下取整8883分 = 88.83元。

余数 = 53300 - 8883*6 = 2,这2分钱加到第一期还款中。

所以,第一期还款本金是88.85元,后面每期还款本金88.83元。

6、每期应还款金额 = 每期手续费 + 每期应还本金

第一期应还金额 = 4.03+88.85 = 92.88元。

第二期开始每期应还金额 = 3.99+88.83 = 92.82元。

在商品详情页和收银页面,只需显示第二期开始每期应还金额和手续费即可。 

FAQ

关于此文档暂时还没有FAQ
返回
顶部