商户手续费(MercFeeModEnum)的收费方式有
NOT_FEE("0", "不收取"),
ACTUAL_FEE("1", "实时收取"),
SINGLE_CAL_PERIOD_RCV("2", "单笔计算周期收取"),
PERIOD_COLLECT_RCV("3", "周期汇总计算收取");
手续费计算类里,会根据商户的收费方式配置来计算手续费。配置值是0,则手续费是0;配置值是1,则计算手续费;配置值是2也会计算手续费,只不过定期收取;配置值是3则不计算手续费(手续费是0),同样收取方式同配置值2。
实时清分逻辑里,在调用记账时,对这个收费方式的判断是:
看截图里的代码,如果不清楚上面手续费计算类里的逻辑,不免会有疑惑“配置值是0时还把计算出来的手续费传给记账请求对象了?”。当然,因为手续费计算类里给的手续费是0,所以,上面代码并无bug。只不过需要花时间了解一下手续费计算类的计算逻辑。
因为实时清分只针对配置值是1时才记手续费账,所以,改成如下逻辑会更直观易读(即使不知道手续费计算类的计算逻辑,也不会有上面的疑惑):