如何实现微信公众平台消息接口》API指南

如何实现微信公众平台消息接口》API指南,第1张

微信公众平台分为订阅号和服务号,服务号提供9大接口,需要通过微信认证后才能使用这些接口。认证费用300元。下面是接口的大致介绍:

语音识别:通过语音识别接口,用户发送的语音,将会同时给出语音识别出的文本内容。

客服接口:通过客服接口,公众号可以在用户发送过消息的24小时内,向用户回复消息。

OAuth20网页授权:通过网页授权接口,公众号可以请求用户授权。

生成带参数二维码:通过该接口,公众号可以获得一系列携带不同参数的二维码,在用户扫描关注公众号后,公众号可以根据参数分析各二维码的效果。

获取用户地理位置:通过该接口,公众号能够获得用户进入公众号会话时的地理位置(需要用户同意)。

获取用户基本信息:通过该接口,公众号可以根据加密后的用户OpenID,获取用户的基础信息,包括头像、昵称、性别、地区。

获取关注者列表:通过该接口,公众号可以获取所有关注者的OpenID。

用户分组接口:通过分组接口,公众号可以在后台为用户移动分组,或创建、修改分组。

上传下载多媒体文件:通过该接口,公众号可以在需要时在微信服务器上传下载多媒体文件。

ajs

// 页面跳转,URL地址是将要跳转的页面相对当前页面的路径 wxnavigateTo({

url: '//help/helpdata=' + {num:'33'},

})

help页面

onLoad: function (options) { // 打印页面传递来的参数

consolelog('options',options) // 打印页面传递来的参数类型

consolelog(typeof(optionsdata))

},

因为一次在做项目的时候需要扫描接口的信息,其中包括参数名,遇到了点障碍就想着把这个解决方案和问题讲一下。

我们要查看的方法如下

java18以后,官方提供了反射的方法能获取到接口的参数名称。示例如下。其中getParameters方法是18才开始提供的。并且需要在javac编译时,加上-parameters参数才行。

通过javap -p -v可以查看class的字节码,如下

其中MethodParameters就是18后在字节码中记录参数名的地方。但是18之前是怎么实现的呢?

spring中有个ParameterNameDiscoverer接口,他有6个实现类。如下:

Aspect开头的都是对增强类的信息获取。我用不到。

PrioritizedParameterNameDiscoverer是一个链表,就是记录一系列的Discoverer。

这个Discoverer就是封装了JDK18的getParameters

这个类是重点,它通过asm获取了class文件的LocalVariableTable信息。class,字节码如下:

其中有一行字节码记录了LocalVariableTable信息,LocalVariableTable里不仅保存了参数名,还保存了其他局部变量信息。spring通过slot来判定哪些是参数以及参数的顺序。

但是LocalVariableTable不是类的必须信息,所以不是编译后必须存在的。只有在javac时-g或-g:vars时,才会保存LocalVariableTable信息。

在idea工具中,我们可以通过如下方式,关闭编译时,自动生成LocalVariableTable来尝试查看字节码。

这个Discoverer就是在18时多添加了个StandardReflectionParameterNameDiscoverer。

在ParameterNameDiscoverer接口上有这么段注释:

它告诉我们,不是任何时候都能获取到参数名的,只能尝试去获取。

当我们关闭了class debug信息,并且将编译级别设置为16时,启动一个简单的spring boot项目。在idea中关闭 *** 作如下:

controller如下:

我们会发现这时候访问该接口传递info参数会报如下错误:

所以,spring mvc中也是有可能获取不到方法参数名的。如果我们需要使用spring mvc的话,最好通过Require等注解来绑定。

以上就是关于如何实现微信公众平台消息接口》API指南全部的内容,包括:如何实现微信公众平台消息接口》API指南、小程序怎么在页面获取接口里面的传参data数据、如何在运行期获取method中的参数名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9609910.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存