临渊羡鱼,不如退而结网。
大家好,我是结网客。
前言当下领取外卖优惠券的公众号很火,随处都能看到宣传几块钱就能吃一份外卖的文案。这引起了我的好奇心,为了探究是否真的有优惠可以领,我深入研究了下里边的套路,并自己也搭建了一个领取优惠券的公众号(有兴趣的朋友可以看一下),并同时分享了两篇相关文章
解密外卖公众号系列-外卖红包哪里来
解密外卖公众号系列-外卖红包公众平台搭建
今天为大家带来一点golang+gin框架实现微信公众号的实操,闲话不多说。翠花,上干货~!
准备工作俗话说“兵马未动,粮草先行”。实操开始前,咱们得先把准备工作做好
1:注册一个微信服务号,地址 微信公众平台
2:微信服务号经过企业认证
3:购买域名
配置公众号后台公众号后台配置服务器信息
1:开发者ID(AppID)、开发者密码(AppSecret)这两个是平台分配,开发需要使用,最好在代码中定义为常量
2:IP白名单,设置自己的服务器地址
3:服务器地址(URL)设置成自己购买的域名:端口。
4:令牌(Token)自己设置,用来校验微信公众号是否接入成功
5:消息加密方式和消息加密密钥,字面意思。为了方便演示,这里我选择不加密。
后台配置工作完成,现在开始动手
开始动手1:服务器接入验证
官方要求验证你的服务器是不是你在后台填写的服务器,所以呢,官方会在你的服务器启动时,向你发送一个加密字符串,然后要求你判断这个字符串是否和你自己生成的加密字符串一致。流程图如下:
上代码
2:获取Access_token
官方平台介绍access_token有7200秒,也就是2个小时的时效性,所以建议我们开发者需要保存access_token,并且还要提供定时刷新机制。
获取access_token接口和参数如下:
首先定义一个access_token管理结构:
接着获取access_token
最后,启动一个定时器,负责定时刷新access_token
3:自定义菜单
自定义菜单接口可实现都都中类型的按钮,这里我们就已点击事件为例
首先需要定义一个菜单结构的json结构,然后以POST请求的方式将json结构发送给微信服务器
4:回应
当用户和微信公众号进行交互时,微信服务器会将信息、事件转发到开发者的服务器上,以xml格式转发数据,格式如下:
我们可以把微信服务器发送给我们的字段整理到一个结构中,这样就不需要每一种类型定义一个结构
我们收到微信服务器发送过来的数据,通过解析后,根据不同的需求返回相应的内容。具体返回什么内容,就需要你来实现
结语利用gin web框架我们可以轻松地实现一个简单的微信公众号服务器,当然还有一些比较花式的功能,例如:用户定时提醒、用户数据分析等等,我们留待后边来分享。
您的点赞、收藏是我坚持的动力,感谢您的支持!