PHP实现微信发红包程序


Posted in PHP onAugust 24, 2015

使用PHP发红包,当我们输入红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,每个红包金额不等,就是要求红包金额要有差异,所有红包金额总额应该等于总金额。

查看演示                        下载源码

首先给大家分析下规律。

设定总金额为10元,有N个人随机领取:

N=1 第一个

则红包金额=X元;

N=2 第二个

为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数。

第二个红包=10-第一个红包金额;

N=3 第三个

红包1=0.01至9.99之间的某个随机数

红包2=0.01至(10-红包1-0.01)的某个随机数

红包3=10-红包1-红包2

……

于是我们得到一个规律,在分配当前红包金额时,先预留剩余红白所需最少金额,然后在0.01至总金额-预留金额间取随机数,得到的随机数就是当前红包分配的金额。

实际应用中,程序先将红包金额分配好,即发红包时,红包个数以及每个红包的金额都分配好了,那么用户来抢红包时,我们随机给用户返回一个红包即可。

红包分配代码:

$total=20;//红包总金额 
$num=10;// 分成10个红包,支持10人随机领取 
$min=0.01;//每个人最少能收到0.01元 
for ($i=1;$i<$num;$i++) 
{ 
 $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限 
 $money=mt_rand($min*100,$safe_total*100)/100; 
 $total=$total-$money; 
 echo '第'.$i.'个红包:'.$money.' 元,余额:'.$total.' 元 '; 
}
echo '第'.$num.'个红包:'.$total.' 元,余额:0 元';

运行以上代码,会输出以下结果:

第1个红包,金额2.08元,余额17.92元

第2个红包,金额1.81元,余额16.11元

第3个红包,金额0.15元,余额15.96元

第4个红包,金额1.61元,余额14.35元

第5个红包,金额1.11元,余额13.24元

第6个红包,金额1.51元,余额11.73元

第7个红包,金额1.21元,余额10.52元

第8个红包,金额2.58元,余额7.94元

第9个红包,金额5.4元,余额2.54元

第10个红包,金额2.54元,余额0元

以上就是使用php实现微信发红包程序,希望对大家有所帮助,有需要源码的朋友,可以直接下载。

PHP 相关文章推荐
支持oicq头像的留言簿(一)
Oct 09 PHP
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 PHP
php 读取shell管道传输过来的内容
Mar 01 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
Laravel框架表单验证详解
Sep 04 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 PHP
discuz论坛更换域名,详细文件修改步骤
Dec 09 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 #PHP
php实现递归的三种基本方式
Jul 04 #PHP
php析构函数的简单使用说明
Aug 24 #PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 #PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 #PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 #PHP
使用PHP进行微信公众平台开发的示例
Aug 21 #PHP
You might like
php发送邮件的问题详解
2015/06/22 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
pyqt和pyside开发图形化界面
2014/01/22 Python
线程和进程的区别及Python代码实例
2015/02/04 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
Python实现Dijkstra算法
2018/10/17 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
pandas的resample重采样的使用
2020/04/24 Python
Python实现汇率转换操作
2020/05/03 Python
使用django自带的user做外键的方法
2020/11/30 Python
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
汽车工程专业应届生求职信
2013/10/19 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
羊脂球读书笔记
2015/06/30 职场文书
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏