红包功能是目前众多聊天APP中不可或缺的功能,巧了,考拉IM也有这个功能,本文将带你了解考拉IM红包的实现。
红包类型
考拉IM目前支持红包类型包括以下三种:
1、群专属红包(红包金额不能超过200元)
2、群拼手气红包(红包个数不能大于群成员,红包金额/红包个数不大于200元)
3、群普通红包(红包个数不能大于群成员,红包金额/红包个数不大于200元)
这里需要强调一点,按照国家相关法律标准,单个/单人平均红包金额不能超过200元,除却特殊节日外。
红包算法
这边说的红包算法,主要是群拼手气红包算法。分为以下两种:
1、用户发出红包之后,程序根据红包个数已经分配好红包的金额,只是没有具体对应到抢包的用户。
2、用户发出红包,用户实时抢红包。
具体的算法实现,我们假设一个业务场景,群聊成员10个人,群成员A发送拼手气红包100元,5个包,具体红包算法如下:
total = 100元 = 100 * 100 分
min = 1分
count = 5
balance = total - min * (count - 1)
开包 = [1, balance)
balance = balance - 开包
循环count ,可以计算出 每次的开包数,和剩余的钱数。
这样做真的就是随机算法了,最低保证最小红包金额是1分钱。如果为了更加公平期间我们可以适当改变一下算法,比如我们把红包金额的百分之多少拿出来平均分配,然后再使用这个红包算法。
警惕
从程序可以看到,我们所有的APP上的业务都是可控的,所以谨防红包诈骗!