如何开发一套微信助力应用Laravel

开始之前,回答一个问题:范冰冰你玩过   作为一个合格的程序员,没有对互联网新玩法的孜孜不倦的追求和必要的好奇心,不是一个合格的程序员;   作为一个朋友,不帮忙点赞、砍价,不是好朋友。   花开两朵各表一枝,我们姑且不去看那些滚粗的背影,我们还是集中精力   Laravel框架,请先自学,如果不会,请看我们后面的专题,我们会请几位大神,专门出一个关于laravel的专辑。如果等不及,请直接      让我们集中精力首先做好助力这个模块本身的设计。序涉及到什么样的功能模块   基本点应该包括:   1、   2、活动信息的管理;包括开始时间、结束时间、活动主题、名称、活动规则信息等;   3、活动规则的实现:主要包括每一次助力产生的值的定义、助力次数限制(按人头计算?按时间计算?按相互之间的关系计算?等等)、助力的;   4、互动信息的呈现,包括排名信息、助力好友(俗称爱心榜)等的展现;   5、安全机制的建立,包括助力提交模式、IP地址的分析、限制;活动黑名单的管理等。1   1、   这里面涉及到一个特定的参数:scope=snsapi_base,还有那个弹出绿色确认窗口的,就是scope=‘userinfo的模式了。具体的看跟下来的专题吧。   2、在各个页面里面,装载分享出去的分享信息。   其中wxjs是装载了js函数的一个php文件(blade模板如果不动,请问度娘)   在   另外,因为分享出去的字段包括:title=$wxdata[share_title],desc=$wxdata[share_desc],imgUrl=$wxdata[share_logo],link=$wxdata[share_link],title=$wxdata[share_timeline],   你可能留意到了,link是可以自己定义的,也就是说,你可以打着林志玲的旗号,然后让大家点击之后,直接跳到凤姐的主页。哈哈哈。   你转发出去的连接,别人点开,就进入到了你的帮忙助力的页面,这个是不是很简单了?   如果你的Userid=,你的跳转连接大可以定义为   其他,你懂的。2活动信息的管控   活动信息的管控,一般来说,还是要放在数据库里面。当然,也可以放在配置文件里面,比如laravel的config下面的配置文件。不过考虑到未来的兼容性,建议还是在数据库里面建一个activity表,最少包括标题、介绍、开始时间、结束时间等信息,至于奖品,则可能是新建其他的库表来保存了。   为了用户体验更好,根据活动的时间,有活动未开始、活动正在举办之中,以及活动已经结束等情况。   注意,laravel的配置文件里面必须要设置好时间,在config/app.php里面,timezone=PRC,然后我们根据活动的节点,装载不同的预告或者其他的结束页面等。publicfunctionindex(){ $isIn=$this-isInActivity(); if($isIn==2

$isIn==4){    returnview(activity.test.preview);}elseif($isIn==3){   returnview(activity.test.over);} returnview(activity.test.main);}   在判断的时候,为了保证判断时间的准确性,我们还是建议增加多一行记录:date_default_timezone_set(Asia/Shanghai);3活动规则的实现这是整个助力活动比较关键的一个部分。助力值   1、首先说说助力值的确定问题。一般来说,助力的规则里面有每助力一次增加1,或者增加随机值,或者根据特定的比例,增加特定的值等等的方式。我们需要做一个方式是普遍适用的,并且是可以通过配置来确定规则的。      我们用了一个json数据格式来保存规则,如下:{值1:比例1,值2:比例2,值3:比例3,………………值N:比例N}   一般来说,比例1+2+3+……+N= ,表示%,但是就算不等于%也没有关系,最终会依据%来转换。   写一段代码,根据比例来产生对应的值,并且封装为一个类,很方便就可以达成了,可以随意调用。助力关系   2、助力关系问题。一般来说,助力关系的判定,是对自己和帮助的人的相互帮忙的关系的判定。无非也就是有以下的几点:   (1)已经帮过忙,一次就算;   (2)还没有帮过忙;   (3)特定的时间段内帮忙的判定,比如每天可以帮一次等等。   我们需要一个表,来记录所有人之间相互帮忙的过程:support:id,act_id,sponsor,supporter,create_at,create_ip,update_at,support_value   如果你喜欢,还可以加入memo字段等。Create_at和update_at是laravel管理固定需要的字段,其实update_at可以不需要的。助力权利   3、助力权利判定。所谓助力权利的判定,就是助力者对于自己的助力的关系的判定。无非就是:   (1)你有资格继续帮忙助力; (2)你没有资格继续帮忙助力,可能是你的总的次数用完了。   同样是利用support表进行必要的判定,只是此时此刻,需要确定的是自己的一些关系。   值得说明的是,2和3点,都建议使用一个配置库来进行某些规则的配置。   比如:Max_Support_Cnt=5等,表示最多可以帮5个人助力等。3互动信息的呈现   实际上,我们在互动游戏玩的过程中,会发现,互动信息呈现出来,将会比较有效地拉动大家玩的兴趣。   一般来说,需要包括最少几个信息:   1、英雄榜、排行榜信息,就是把当前助力人数或者助力值较高的人排行列出来,激励大家积极向上。这个因为涉及到自己的排名,以及其他人的排名,所以比较复杂。   我这里贴一段SQL,给大家参考,就是如何直接从数据库里面获取排名的:selecta.*,b.openid,b.nickname,b.headimgurl,

rownum:=

rownum+1asrankingfromcf_task_sponsoraleftjoinusr_userinfobona.sponsor=b.idjoin(select

rownum:=0)rorderbya.support_valuedesc,a.last_updatetimeasclimit   看到了

rownum:=

rownum+1这个吗?   keypoint   2、爱心榜、助力榜等,就是显示帮忙的好友信息,以及帮忙的数量。这个比较简单,直接从support表去取就好了。4安全考量   安全的角度,除了程序本身要健壮之外,还必须要考虑其他的辅助的模式。   1、IP的限制。   IP范围,可以从    IP数量:还有另外一个就是,限定同一个IP只能帮忙助力多少次。这样,有好有不好,也因为这样比较容易误伤。不过这个点,我们认为是必须的。   涉及的数据库表,我们叫:   2、黑名单库。   你不要跟我说你没有遇到过活动*。   如果有,你完全可以把他们拉进来黑名单库,每次他们发起活动或者他们帮忙助力的时候,你都首先去判定一下,他们是否在库里面,如果在,就直接跟他们Ciao了。   别误会,Ciao据说是意大利语的再见的意思, 不是国内的某意思哦。涉及数据库表:blacklist,字段包括:id,content,type,memo,create_at,update_at,desc等。   每次判定的时候就直接用content+type去判定即可,毕竟放入里面的Openid、userid、IP地址等,都是完全不同的内容形式,放在一个位置即可。   3、助力提交模式,还是要用到laravel的跨域验证。这个是基本的了。   4、提交辅助验证。在做POST提交的时候,尤其是Ajax提交的时候,需要注意做好其他验证码的防伪,一般来说,在每次装载页面的时候,都产生一个当前页面的验证码,写入session,提交的时候进行验证即可。跟前一步laravel的机制很一致。   5、助力/砍价过程,使用数据库的事务处理,可以 限度保证数据的一致性。又到了要总结的时候又写那么长……又没有我的梗……我就喜欢长……还喜欢你的大宝剑……程序猿安慰师小林写到快结束的时候,才发现写得太长了,而且还不够特别的细致。以后有时间就专门抽一个个的点出来详细写吧。我们提倡的做法是尽可能通用一些,这样后续的类似活动才有可能更好更快地开发出来。Ciao不点赞的程序员不是好程序员。







































新疆治疗白癜风的医院
治白癜风南京哪家医院好



转载请注明:http://www.xxcyfilter.com/zyxz/3389.html