在微信公众号里面怎么设置阅读原文?

本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:



填写基本信息,验证邮箱

账号主体类型选择个人,填写信息

创建成功后,可以进入公众号的管理界面



但测试号也不是万能的,部分高级功能,如微信支付,卡券功能等也是不开放的。如果要实现支付功能还是得去注册个正式的公众号。本文后续所有测试都基于测试公众号

我们首先了解下微信与我们的服务器交互的过程:

当我们在微信app上,给公众号发送一条内容的时候,实际会发送到微信的服务器上,此时微信的服务器就会对内容进行封装成某种格式的数据比如xml格式,再转发到我们配置好的某个URL上,所以该URL实际就是我们处理数据的一个请求路径。所以该URL必须是能暴露给外界访问的一个公网地址,不能使用内网地址,生产环境可以申请腾讯云,阿里云服务器等,但是在开发环境中可以暂时利用一些软件来完成内网穿透

在进行和微信公众号服务器交互之前,需要进行接入验证。接入验证涉及的2个关键参数如下:

  • URL:就是指我们自己的服务器地址。该URL是开发者用来接收和响应微信消息和事件的接口URL(必须以http://或https://开头,分别支持80端口和443端口)
  • Token:可任意填写,用作生成签名(必须为英文或数字,长度为3-32字符)

接入验证的大致流程如下:

  1. 开发者提交URL和token信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:
微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
  1. 开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

  2. 将三个参数字符串拼接成一个字符串进行sha1加密
  3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

注意到微信发送的GET请求中并没有携带我们填写的token,而签名signature的生成过程中token是一个入参,所以我们填写的url处理程序中,校验signature时也需要token,这就要求我们在url对应的后端程序中定义token,要和通过微信页面填写的token一致。这样做是为了安全性,只有知道token才可以接入成功,避免了他人盗用公众号做操作

根据上述验证流程,我们创建一个Springboot应用,编写验证接口

利用内网穿透工具,将我们的本地应用地址映射到公网域名

然后在测试号页面填写回调url和正确的token,即可接入成功。如果token填错,将接入失败

  • 在接入成功后,后续所有微信发送过来的消息都会携带signaturetimestampnonce这3个参数,我们每次接收微信消息时都要跟初始接入一样去校验signature,以确保接收到的消息是微信发过来的,而不是其他人发过来的
  • 仅接入消息会携带echostr,后续所有微信发过来的消息不会携带echostr,所以可以根据请求是否携带了echostr来判断是否是接入消息。接入消息除了校验signature外要原样返回echostr,其他后续消息只需校验signature即可
发送方帐号(一个OpenID)
消息创建时间 (整型)
事件KEY值,设置的跳转URL

我们来实现一下用户关注公众号时接收推送消息并自动回复的功能

事件和消息都是推送到我们的URL上,怎么区分他们也很简单,通过MsgType这个属性,那么进一步再区分是关注还是取消关注,根据Event属性即可。所以,我们在原来的InMessage类,再添加一个Event属性

然后在Controller处理方法中添加对应逻辑

然后取消关注后再关注,即可展现效果



一级菜单数组,个数应为1~3个
二级菜单数组,个数应为1~5个
菜单的响应动作类型,view表示网页类型,click表示点击类型,miniprogram表示小程序类型
菜单标题,不超过16个字节,子菜单不超过60个字节
click等点击类型必须 菜单KEY值,用于消息接口推送,不超过128字节
网页 链接,用户点击菜单可打开链接,不超过1024字节。 type为miniprogram时,不支持小程序的老版本客户端将打开本url。
调用新增永久素材接口返回的合法media_id
小程序的appid(仅认证公众号可配置)

正确时的返回JSON数据包如下:

错误时的返回JSON数据包如下(示例为无效菜单名长度):

其他类型的菜单示例如下



公众号唯一凭证,注册成功后由微信提供
公众号唯一凭证密钥,注册成功后由微信提供

正常情况下,微信会返回下述JSON数据包给公众号:

凭证有效时间,单位:秒

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

系统繁忙,此时请开发者稍候再试
0
调用接口的IP地址不在白名单中,请在接口IP白名单中进行设置。(小程序及小游戏调用不要求IP地址在白名单内。)
此IP调用需要管理员确认,请联系管理员
此IP正在等待管理员确认,请联系管理员
24小时内该IP被管理员拒绝调用两次,24小时内不可再使用该IP调用
1小时内该IP被管理员拒绝调用一次,1小时内不可再使用该IP调用
模板跳转链接(海外帐号没有跳转能力)
跳小程序所需数据,不需跳小程序可不用传该数据
所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)
所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),要求该小程序已发布,暂不支持小游戏
模板内容字体颜色,不填默认为黑色

在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:

}

我要回帖

更多关于 怎样在阅读原文里添加链接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信