阅读 305

SpringBoot整合微信公众号开发(一)

前言

目前很多网站都有扫码登录,通常会设有微信公众号,当我们想要访问网站某些资源的时候就需要扫码关注公众号,然后自动注册,登录。

准备工作

  1. 一个外网可访问的地址(没有也没关系,后面会介绍怎么解决)

  2. appIDappsecret

1. 获取appID和appsecret

学习阶段,我们直接使用微信测试号,后面直接切换未自己认证的就行

测试号登录

image.png

扫码登录后,我们就可以得到测试号的appIDappsecret

2. 接口配置信息

这里比较坑,这里的地址一定要填外网可以访问的地址。这里的逻辑是微信平台会发送一个验证请求到我们配置的地址,我们的服务做出正确的响应,表示之间关联成功,后续一些关注,扫码触发的请求才会发送到我们的服务器。

我们不可能为了学习一下去买一台服务器,并且我们在本地开发,有服务器我们调试也不方便。这里我们可以使用ngrok,通过内网穿透生成一个代理地址,这个地址外网是可以访问的,但是有效期只有两个小时,毕竟白嫖的,麻烦一下2个小时手动修改一下。

ngrok下载 下载解压后,会得到一个ngrok.exe可执行文件,点击运行, 输入需要代理的端口号,一般为我们后台的服务端口

ngrok http 9000 复制代码

image.png

这样我们就得到了一个可以直接访问到我们服务的外网地址

image.png

填写好配置信息,token自己随便填一个就行

3. 服务端验证接口

正如我上面配置的地址,当我点击保存的时候,微信服务端会发一个校验的请求到代理地址,然后转发到我本地,也就是http://127.0.0.1:9000/wechat,接下来我们只需要接受请求,正确响应就可以了。

这里不赘述了,直接上代码

@ApiOperation(value = "验证微信服务器") @GetMapping("/wechat") public String wechatServer(@RequestParam(name = "signature") String signature,                            @RequestParam(name = "timestamp") String timestamp,                            @RequestParam(name = "nonce") String nonce,                            @RequestParam(name = "echostr") String echostr) {     String token = "填配置里的token";     String[] arr = new String[]{token, timestamp, nonce};     Arrays.sort(arr);     String s = SecureUtil.sha1(arr[0] + arr[1] + arr[2]);     return signature.equals(s) ? echostr : ""; } 复制代码

具体认证的逻辑可以翻阅官方文档

总结

到这里我们的微信平台和本地服务已经连接成功了,后序只要我们根据需求,监听事件,扩展接口,完成业务就可以了


作者:申阳
链接:https://juejin.cn/post/7031118899827441672


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐