当先锋百科网

首页 1 2 3 4 5 6 7

今晚跟大家分享微信H5摇红包应用开发相关的技术。本案例来自实际项目,某企业80万现金红包。

这里写图片描述

1、应用场景描述
年初,我们收到一个需求,线下40多个城市2000多家实体店需要推广一个新产品,用户每次购买新产品,将获得一次摇红包的机会。
线下还有有针对经销商的会议营销活动,一个会议室内可能有数百人至数千人参加会议,会议中场有摇红包活动。红包通过微信发放。
需求就这些了,看起来简单,但实际生产环境中,发现了N多坑,在后面我们将一一论述。
2、物料准备
物料名称 如何获得
1 微信认证且开头支付的服务号 mp.weixin.qq.com 申请获得
2 微信appid、appsecret,等基本信息 微信公众账号平台提供
3 用户openid 通过auth2 接口获得
4 微信支付apikey pay.weixin.qq.com平台提供
5 微信支付cerfile,及rsa key 文件 pay.weixin.qq.com平台提供
3、 相关流程设计及技能点说明
3.1 活动流程设计
这里写图片描述

上图展示了用户侧的相关操作,此次活动用户最多只有一次获奖机会,另一方面,服务器开启定时轮询服务,用于发放红包,至于为什么.,后面再阐述
3.2 数据库表结构设计及红包队列机制
这里写图片描述
repacket 表是红包基础信息表,用户摇红包时,会在该表中创建一条记录,此时stat状态是0。
另一方面,服务器上有轮询程序,5秒轮询一次,每次从表redpacket 中取出stat=0的10条记录,进行红包发放操作,每发放成功一个,对于的stat设置为1。
为了确保红包送到,我们设计了ntrytimes 字段,每次发送如果未成功,则 该字段增1,值到该字段数值高于某值,一般为5
wxlog 表用来记录红包发放反馈细节,用于红包发放会碰到很多突发问题,该表记录每次发放的细节,有利于提高我们的服务质量
3.3、如何防止被微信支付拒绝
微信红包被拒有很多情况,如下是其中最常见的三种,
发放失败,此请求可能存在风险,已被微信拦截 该情况一般是因为用户帐号存在异常,比如微信监控机制发现用户利用红包在赌博,则会屏蔽。此类问题没有解决方法。