玩转微信公众号开发


注意:原创文章,转载请注明出处。

引言

相信大家接触过不少微信公众号,除了最基础的内容推送之外,公众号还提供了自动回复、在线客服、消息发布、移动支付等强大功能,只要略懂开发,人人都能将公众号玩出花。

前端时间基于微信公众号开发了云资源告警系统、口罩申领系统,也为公司其他开发项目对接微信公众号提供了帮助,对公众号开发小有心得,在这里就消息推送功能做示例,分享一些公众号开发的经验。

一、了解基础参数

申请公众号流程就不多赘述了,大家到官网根据申请流程一步步填写资料,很快就可以创建一个属于自己的公众号。

公众号创建成功后,我们需要了解以下开发过程中常接触的参数:
1、开发者ID(AppID):公众号开发识别码,部分接口调用时使用
2、开发者密码(AppSecret):部分接口调用时使用,通常与AppID成对出现
3、令牌(Token):用于后端验证接收到的信息是否来自微信
4、access_token:大部分接口调用时使用,需要调用指定接口获取该参数
5、IP白名单:只有白名单中的IP可以调用获取access_token接口
6、服务器地址(URL):后端接口,用于接收微信公众号主动发送过来的消息
7、用户ID(OpenID):每个微信用户对用该公众号都会有一个唯一的ID

二、获取access_token

AppID 和AppSecret可以在开发平台直接获得,比较关键的是access_token,需要调接口生成,关于access_token需要了解的有:
1、Access_token使用于调用大部分功能接口,如推文发布、主动发送消息、查询用户列表等;
2、Access_token需要调用指定接口获取,且具有时效性,默认2小时,但如果在有效时间内再次调用接口获取access_token,则前一个token会自动失效;
3、新获取的token有5分钟的过度保护期,在此期间内不会被覆盖,此特性仍在迭代优化中,后续可能会有新的过度规则;
4、如公众号对接了多个后端应用,官方建议搭建中控应用专门管理access_token。

分享我在项目中获取access_token的代码:
![](https://img-blog.csdnimg.cn/20200930140707683.png?x-oss-proce#pic_center

三、构建消息接收接口

如果需要主动接收微信公众号消息,例如用户发送消息给公众号、用户点击了菜单等,就需要在应用后端构建消息接收接口。

该接口包含两部分:
1、当接收的消息为GET请求时,通过Token验证消息来源,校验消息来自公众号后,原样返回GET请求中的echostr参数。该配置是在公众号配置后端消息接口时,用来通过微信发送的验证请求;
2、除了上述情况,微信发送的消息都以POST请求的形式,因此当接收消息为POST请求时,校验消息来源后,按规定格式返回内容即可。
代码示例:
在这里插入图片描述

四、实现公众号自动回复功能

我们可以利用消息接收接口,实现用户消息的自动回复,上述代码中最后一个if语句是判断用户交互的类型为‘text’,也就是说用户在公众号中发送文字消息了,那么通过下面代码,我们就能实现自动回复“已收到您的消息,感谢支持XXXX!”
在这里插入图片描述

五、获取公众号用户信息

将原访问地址(URL1)改写成固定格式(URL2),用户在微信端访问URL2时,会先进入授权页面,用户同意授权后,会带着code参数访问URL1,后端服务器可以使用这个code向微信后端索要该访问用户的OpenID。

通过OpenID,可以进行接下来的操作(例如云允许客户访问该页面、或记录该用户信息到数据库、或拒绝该用户访问等)

通常会在中间件或装饰器中进行上述操作。

代码示例:
在这里插入图片描述

六、主动推送消息到用户

有了access_token、用户信息,主动推送及其他大部分功能接口也都可以正常调用了。

与上面的‘自动回复’相比,主动推送不需要用户在公众号操作,公众号可以随时发消息给用户。主动推送的使用场景较多,告警信息、消费记录、客户回访等业务都可以使用到主动推送。

由于主动推送可能被利用发送大量垃圾信息,因此微信对主动推送有严格的限制,需要使用固定模板,并且每天都有消息数量的限制。

下面以推送告警消息作为示例:
在这里插入图片描述
在这里插入图片描述

七、总结

公众号开发对比上次写到的微信支付对接开发可以说是相当简单了,如果你还有前端开发经验,甚至可以把H5应用接入公众号,用户从公众号即可访问登陆应用,使你的应用不再愁于没有一个顶级域名,并且天然利用了微信超过9亿的用户基础。

大家看完后是不是跃跃欲试了呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值