zoukankan      html  css  js  c++  java
  • 微信公众号开发业务

    微信裂变系统

    目标:为商家公众号,服务号增加粉丝,增加活动访问量。

    微信端用户简要业务

    图示

    1、在朋友圈看到别人分享的图片,或者被朋友推送一张图片

    2、扫描以后进入关注公众号页面

    3、关注这个公众号以后,公众号推送一段活动参与规则和一张带昵称、头像、二维码的活动dm。

    4、把dm发给自己的好友,好友扫描并关注公众号后,用户会收到好友为我助力信息(肯定是好友为我助力的提醒)

    5、如果助力人数达到商家规定,服务号就会发送领取奖品连接 

    6、如果好朋友帮我关注了,但是我没有收到助力提醒,就可以点击微信公众号投诉菜单,进行反馈。(这里因为海报生成的临时素材只有三天有效,所以存在用户收不到的情况,同时客服消息的消息有效期也是48小时,当消息接口关闭的时候,必须诱导客户与微信服务器进行交互,才能继续发送海报,所以增加投诉菜单)

    7、每次好友助力后,推送用户会收到一条助力榜单排行链接,点击连接进入后能够查看自己在整个活动中的被助力人数排名

    技术细节

    1、接通微信服务器连接(内网穿透),真实环境需要配置服务器和合法域名。

    接通微信服务器:因为我们项目部署在本地tomcat,所以只能127.0.0.1本机地址进行访问,必须进行内网穿透,这样内网就可以和微信服务器进行交互了。

    发送请求:微信服务器发送get请求到填写的服务器URL上,携带四个参数进行访问

    signature:微信加密签名

    timestamp:时间戳

    nonce:随机数

    echostr:随机字符串

    验证过程:timestamp、nonce、token(微信服务器发送过来的令牌),将三个字符串拼接成一个字符串进行sh1加密,结果与signature进行比对,正确则将echostr返回给请求页面。显示连接成功。

    2、tomcat服务器接收用户发送过来的request请求信息,这里是xml格式的信息,需要处理成map形式,根据map中的事件类型,选择对应的事件处理器

    细节:转换成map(xmlmap),这里可以得到用户的openid=FromUserName,可以获取事件类型,以及扫码后被扫描的二维码所带的参数的值。

    CreateTime=1605276864, 
    EventKey=, 
    Event=subscribe, 
    ToUserName=gh_6b20150b9105, 
    FromUserName=orjwj6mEugqC6qzzvhMhcnYQoL4A,

    3、如果关注或者点击参与活动菜单,都视为参与裂变活动。

    4、查看本地数据库,该用户是否已经注册在本地,如果没有则注册,如果有则直接通过用户openid,查看当前用户参与了什么活动

    5、查看这个用户最新一次活动,该用户是否存在活动的有效期,这里就需要一个活动的有效期管理,用户与活动的对应关系需要一张表存储信息。

    6、如果用户已经参加了活动,则根据用户openid调出已经生成的海报dm单的mediaid,查看mediaid的过期情况,未过期直接指挥微信后台发送用户对应图片,这是生成的海报,是放在临时素材库的。

    7、如果mediaid对应的海报内容已经过期(默认推送dm流程),这里的过期是指的二维码(30天过期),在后台主体中选中当下要进行的活动主体(优惠券、裂变活动),在对应主题中,推送对应的活动底片,合成相应活动的海报。

    注意:还有个永久二维码的生成,但是有个弊端。最多只能生成10万个,如果当该活动用户规模大,活动就被限制。

    细节:点击参加活动按钮、确定活动题、查询数据库中对应主题的id,对应索引到文件目录下,拿到后台上传的图片。

    8、基于当下token获取用户信息,将用户昵称(base64处理,可能带表情),和头像传入微信服务器,然后基于图片底片,使用hutool工具,进行图片的拼接,拼接后的图片要存在本地指定目录上,图片的名称为(用户openid+活动主题+时间的long值/100000),将合成的海报发送到指定微信后台上传到临时素材库存在微信服务器,然后调用mediaid,客服消息利用图片回复消息推送给用户。

    9、如果用户所处的活动并未失效,但是imediaid失效了(有效期为3天),需要从数据库中拿到对应活动的底片,然后重新获取用户信息,头像、底片合成海报。

    10、当该用户的助力消息推送失败的时候,本地需要记录推送失败信息,在用户投诉意见或者点击事件再次被激活的时候,立即进行推送,推送失败的触发条件如下:

      a. 客服消息48小时已经过期

      b. 模板消息发送功能被禁止

      c. 无法自动回复

    解决方案:用户退出再次关注、用户发送信息重新激活微信会话、设置用户投诉菜单(作为一个诱导性操作留住客户)

    海报分享:生成的dm中二维码信息为推送用户openid和参与活动id。dm但分享以后,好友扫码助力,用户参与活动的openid,活动id,好友的openid,都会被推送到微信后台。分享中的dm二维码带有参数,参数值包含被分享者openid。

    11、标签管理:根据微信和用户的交互行为,给用户打上标签。系统后台自定义的点击流程,后台主动打上标签,可以生成用户的偏好(美食、运动、看书)。

    12、活动奖品信息发送接口的相关业务的调用开发,当达到什么指标,推送具体领取奖品的方式。

    微信客服信息管理系统业务

    1、登录模块,管理员输入账号、密码进行登陆。

    2、用户信息管理模块,当用户扫描二维码后,将用户基本信息存储到数据库,在管理系统页面进行分页显示,模糊查询客户基本信息。

    3、海报底片管理模块,微信服务器推送海报,需要底片,用户头像,昵称合成海报,对图片底片进行管理,可以生成更多活动主题的海报,其功能有(新增底片,删除旧的底片,更换底片,查询相应活动主题的底片)

    4、用户层级管理模块,数据来源于微信,用户B扫描了用户A的二维码,A是B的上级,B是A的下级,设计表结构呈现,用户与用户之间层级关系,其功能有(查询用户A的上级,查询用户B的所有下级)

    5、标签管理模块,数据来源于微信,用户A点击按钮参与某种你活动(促销,团购)或者扫描某个活动的二维码,就会被微信服务器捕捉到,存入数据库,在后台进行用户标签显示。系统后台管理员也会根据用户操作流程、习惯自定义打标签。其功能(更改用户身上特定标签,查询特定用户被打上何种标签)

    6、活动分析,数据来源用户信息表,图表呈现每天增长的活动用户数,每月增长的用户数,每年增长的用户数。(使用的echarts图表技术)

  • 相关阅读:
    TCP 重置攻击的工作原理
    Openshift 4.4 静态 IP 离线安装系列:初始安装
    跟我学SpringCloud | 终篇:文章汇总(持续更新)
    老司机带你玩转面试(4):Redis 高可用之哨兵模式
    老司机带你玩转面试(3):Redis 高可用之主从模式
    老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩、击穿、穿透
    Python 图像处理 OpenCV (14):图像金字塔
    老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化
    Python 图像处理 OpenCV (13): Scharr 算子和 LOG 算子边缘检测技术
    Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术
  • 原文地址:https://www.cnblogs.com/HelloM/p/14163631.html
Copyright © 2011-2022 走看看