微信公众平台-测试号网页授权-获取openid方法
1、创建自己的测试号
2、测试号管理信息填写(注意仔细一步步对照)
2.接口配置信息
-
Controller测试代码:
3.JS接口安全域名
此处还有点问题,后面具体使用时再来完善,因为一个月只有三次修改机会,不敢随便修改
3、手动获取openid
文档说明中使用步骤: 1.获取code
package com.mys.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; /** * @author mys * @date 2022/3/23 15:02 */ @RestController @RequestMapping("/weixin") @Slf4j public class WeixinController { @GetMapping("/auth") public void auth(@RequestParam("code") String code) { log.info("进入auth方法"); log.info("code={}", code); } }
运行结果如下: 2.获取access_token
第1步获取到code之后,用下面的请求链接,获取access_token,会返回一个json格式的数据,其中里面就包含了openid,这个很重要的信息,用于唯一标识用户
链接需要修改的地方:填写自己的appid、secret,上面测试号管理信息中有,code换成第1步获取到的code,具体可查看测试代码 测试代码:
运行结果: 复制出来的json数据如下:
4、使用SDK获取openid
1.引入依赖 pom.xml
<dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>4.2.0</version> </dependency>
2.修改配置文件 application.yml,并写配置 WechatAccountConfig
package com.mys.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * @author mys * @date 2022/3/23 15:53 */ @Data @Component @ConfigurationProperties(prefix = "wechat") public class WechatAccountConfig { /** * 公众平台id */ private String mpAppId; /** * 公众平台密钥 */ private String mpAppSecret; }
WechatMpConfig
package com.mys.config; import me.chanjar.weixin.mp.api.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; /** * @author mys * @date 2022/3/23 15:47 */ @Component public class WechatMpConfig { @Autowired private WechatAccountConfig accountConfig; @Bean public WxMpService wxMpService() { WxMpService wxMpService = new WxMpServiceImpl(); wxMpService.setWxMpConfigStorage(wxMpConfigStorage()); return wxMpService; } @Bean public WxMpConfigStorage wxMpConfigStorage() { WxMpInMemoryConfigStorage wxMpConfigStorage = new WxMpInMemoryConfigStorage(); wxMpConfigStorage.setAppId(accountConfig.getMpAppId()); wxMpConfigStorage.setSecret(accountConfig.getMpAppSecret()); return wxMpConfigStorage; } }
3.查看文档,编写代码 文档链接:https://github.com/Wechat-Group/WxJava/wiki/%E5%85%AC%E4%BC%97%E5%8F%B7%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3 也就是上面参考文档里面的一个子链接,下面代码就是一个获取openid的案例,其他学习可查看文档,写的很全面。
调试运行结果: 很想感叹一下,看中文的注释太清晰了!