spring boot整合第三方微信开发工具 weixin-java-miniapp 实现小程序微信登录

这篇具有很好参考价值的文章主要介绍了spring boot整合第三方微信开发工具 weixin-java-miniapp 实现小程序微信登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有时候项目需要用到微信登录或获取用户的手机号码,weixin-java-miniapp是一个好用的第三方工具,不用我们自己写httpcline调用。

导入jar包

       <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-miniapp</artifactId>
            <version>4.1.0</version>
        </dependency>

添加一个resource.properties文件,写上小程序的appid和secret

wx.miniapp.appid: xxxxxxxxxxxx
wx.miniapp.secret: xxxxxxxxxxxxxxxxxxxxxxxxxx
wx.miniapp.msgDataFormat: JSON

添加两个配置文件
WxMaProperties.java

@ConfigurationProperties(prefix = "wx.miniapp")
public class WxMaProperties {

    /**
     * 设置微信小程序的appid
     */
    private String appid;

    /**
     * 设置微信小程序的Secret
     */
    private String secret;

    /**
     * 消息格式,XML或者JSON
     */
    private String msgDataFormat;

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getSecret() {
        return secret;
    }

    public void setSecret(String secret) {
        this.secret = secret;
    }

    public String getMsgDataFormat() {
        return msgDataFormat;
    }

    public void setMsgDataFormat(String msgDataFormat) {
        this.msgDataFormat = msgDataFormat;
    }

WxMaConfiguration.java

@Configuration
@EnableConfigurationProperties(WxMaProperties.class)
public class WxMaConfiguration {

    @Bean
    public WxMaService wxMaService(WxMaProperties properties) {
        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
        config.setAppid(properties.getAppid());
        config.setSecret(properties.getSecret());
        config.setMsgDataFormat(properties.getMsgDataFormat());

        WxMaService service = new WxMaServiceImpl();
        service.setWxMaConfig(config);
        return service;
    }

}

如何使用


    @Autowired
	private WxMaService wxMaService;

    @ApiOperation("获取微信授权信息")
    @ApiImplicitParam(name = "code",value = "前端授权登录后传来的code", required = true,paramType = "query")
    @RequestMapping(value = "/wechatSession", method = RequestMethod.POST)
    @ResponseBody
    public ResponseResult wechatSession(@RequestParam String code) {
        //获取openId、unionid、session_key
        WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(code);
    }


    @ApiOperation("小程序手机号登录")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "sessionKey", value = "sessionKey", paramType = "query", dataType = "string", required = true),
            @ApiImplicitParam(name = "encryptedData", value = "加密串", paramType = "query", dataType = "string", required = true),
            @ApiImplicitParam(name = "iv", value = "偏移量", paramType = "query", dataType = "string", required = true)
    })
    @RequestMapping(value = "/wechatLogin", method = RequestMethod.POST)
    @ResponseBody
    public ResponseResult wechatLogin(HttpServletRequest request,                                     
                                      @RequestParam @NotBlank(message = "sessionKey不能为空") String sessionKey,                                    
                                      @RequestParam @NotBlank(message = "加密串不能为空") String encryptedData,
                                      @RequestParam @NotBlank(message = "偏移串不能为空") String iv) {
        WxMaPhoneNumberInfo phoneInfo = wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
        return phoneInfo.getPurePhoneNumber(); 
    }

小程序给微信发送消息通知,类似于下图
weixin-java-miniapp,spring boot,java,微信,spring boot
在resource.properties添加相关类型的消息通知id,在申请小程序那配置

#通知类型1
wx.miniapp.msg.template_id_1: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#通知类型2
wx.miniapp.msg.template_id_2: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

如何使用:文章来源地址https://www.toymoban.com/news/detail-597493.html

   @Value("${wx.miniapp.msg.template_id_1}")
    private String msgTemplateId1;

    @Value("${wx.miniapp.msg.template_id_2}")
    private String msgTemplateId2;

/**
openId : 用户微信登录的openID
*/
   private boolean sendSubscribeMessage(String openId) {
        String page="pages/index/index"; // 应该是消息点击后跳转页面
        WxMaSubscribeMessage message = new WxMaSubscribeMessage();
        message.setTemplateId(msgTemplateId1);
        message.setToUser(openId);
        message.setPage(page);
        List<WxMaSubscribeMessage.MsgData> subscribeDataList = new ArrayList<>();
        WxMaSubscribeMessage.MsgData subscribeData = new WxMaSubscribeMessage.MsgData();
        subscribeData.setName("key1"); // 你在小程序自定义的key(比如“商家名称”)
        subscribeData.setValue("奈雪的茶"); //key对应的内容
        //添加你配置要且要展示的内容
        subscribeDataList.add(subscribeData);
   
        message.setData(subscribeDataList);
        try {
            wxMaService.getMsgService().sendSubscribeMsg(message);
            return true;
        } catch (WxErrorException e) {
            log.error("发送小程序订阅消息失败,errCode:{},errMsg:{}", e.getError().getErrorCode(), e.getError().getErrorMsg());
        }
        return false;
    }

到了这里,关于spring boot整合第三方微信开发工具 weixin-java-miniapp 实现小程序微信登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DAY02_Spring—第三方资源配置管理&Spring容器&Spring注解开发&Spring整合Mybatis和Junit

    说明:以管理DataSource连接池对象为例讲解第三方资源配置管理 问题导入 配置数据库连接参数时,注入驱动类名是用driverClassName还是driver? 1.1 管理Druid连接池 数据库准备 【第一步】添加Druid连接池依赖 注意:除了添加以上两个依赖之外,别忘了添加spring-context依赖。 【第二

    2024年02月13日
    浏览(62)
  • DAY02_Spring第三方资源配置管理&Spring容器&Spring注解开发&Spring整合Mybatis和Junit

    说明:以管理DataSource连接池对象为例讲解第三方资源配置管理 问题导入 配置数据库连接参数时,注入驱动类名是用driverClassName还是driver? 1.1 管理Druid连接池 数据库准备 【第一步】添加Druid连接池依赖 注意:除了添加以上两个依赖之外,别忘了添加spring-context依赖。 【第二

    2024年02月14日
    浏览(37)
  • 对接第三方接口鉴权(Spring Boot+Aop+注解实现Api接口签名验证)

    一个web系统,从接口的使用范围也可以分为对内和对外两种,对内的接口主要限于一些我们内部系统的调用,多是通过内网进行调用,往往不用考虑太复杂的鉴权操作。但是,对于对外的接口,我们就不得不重视这个问题,外部接口没有做鉴权的操作就直接发布到互联网,而

    2024年04月29日
    浏览(57)
  • Spring Boot 最新版3.x 集成 OAuth 2.0实现认证授权服务、第三方应用客户端以及资源服务

    Spring Boot 3 已经发布一段时间,网上关于 Spring Boot 3 的资料不是很多,本着对新技术的热情,学习和研究了大量 Spring Boot 3 新功能和新特性,感兴趣的同学可以参考 Spring 官方资料全面详细的新功能/新改进介绍 Spring 版本升级到6.x JDK版本至少17+ … 新特性有很多,本文主要针对

    2024年02月02日
    浏览(51)
  • 第三方开发工具—PyCharm(安装、使用、汉化)超详细、图超多、注脚特多(Windows操作系统)

    目录 前言 一、PyCharm安装 安装地址 安装步骤 二、第一次启动 三、使用(开始编程) 1.第一个文件夹 2.第一个程序 3.运行第一个程序 四、汉化插件 五、总结 做任何事情时,舒适的环境是非常重要的。一个好的软件开发环境能给人带来不一样的体验。 先让我们来看看PyCharm的

    2024年02月03日
    浏览(34)
  • Springboot整合第三方登录

    Springboot整合第三方登录 为什么采用第三方登录 ​ 采用第三方登录可以避免重新注册账号的繁琐,也不需要再为密码和昵称发愁,而第三方登录有一个比较好用的包,里面整合了多种第三方登录,开箱即用,非常方便。就是JustAuth,网址https://www.justauth.cn/。 整合第三方登录

    2024年02月09日
    浏览(29)
  • OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt!

    OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt! GitHub - NiuXiangQian/chatgpt-stream: OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图

    2024年02月12日
    浏览(37)
  • springboot整合第三方技术邮件系统

    springboot整合第三方技术邮件系统,发邮件是java程序的基本操作,springboot整合javamail其实就是简化开发。不熟悉邮件的小伙伴可以先学习完javamail的基础操作,再来看这一部分内容才能感触到springboot整合javamail究竟简化了哪些操作。简化的多码?其实不多,差别不大,只是还个

    2024年02月11日
    浏览(26)
  • SpringBoot【开发实用篇】---- 整合第三方技术(缓存)

    企业级应用主要作用是信息处理,当需要读取数据时,由于受限于数据库的访问效率,导致整体系统性能偏低。 应用程序直接与数据库打交道,访问效率低 为了改善上述现象,开发者通常会在应用程序与数据库之间建立一种临时的数据存储机制,该区域中的数据在内存中保

    2024年02月05日
    浏览(39)
  • 【SpringBoot】整合第三方技术Junit. MybatisPlus druid

    自己定义一个功能,测试功能接口 测试步骤 注入你要测试的对象 提前声明为bean资源 执行你要测试的方法 如果测试类在SpringBoot启动类的包或者子包中,可以省略启动类的设置们也就是省略classes的设定 新建一个模块 勾选MybatisFrameWork 和MySQL driver 记得一定要配置数据库连接信

    2024年02月06日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包