java实现微信小程序登录

一、引入核心pom

csharp 复制代码
        <!-- 微信小程序 -->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-miniapp</artifactId>
            <version>4.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

二、注入依赖配置

csharp 复制代码
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.WxMaUserService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;


@Slf4j
@Configuration
public class WxClientConfig {

    //小程序服务
    @Value("${wx.mini.appId}")
    private String miniAppId;
    @Value("${wx.mini.secret}")
    private String miniSecret;
    private WxMaUserService wxMaUserService;

    @PostConstruct
    public void init() {
        //微信小程序
        WxMaDefaultConfigImpl wxMaConfig = new WxMaDefaultConfigImpl();
        wxMaConfig.setAppid(miniAppId);
        wxMaConfig.setSecret(miniSecret);

        WxMaService wxMaService = new WxMaServiceImpl();
        wxMaService.setWxMaConfig(wxMaConfig);
        this.wxMaUserService = wxMaService.getUserService();
    }

    @Bean(name = "wxMaUserService")
    public WxMaUserService wxMaUserService(){
        return this.wxMaUserService;
    }

三、跟进微信CODE 获取openId

csharp 复制代码
    @Resource
    private WxMaUserService wxMaUserService;
        //根据授权code获取微信用户信息
    WxMaJscode2SessionResult session = wxMaUserService.getSessionInfo(authDto.getCode());
   WxMaUserInfo wxUser = wxMaUserService.getUserInfo(session.getSessionKey(), authDto.getEncryptedData(), authDto.getIv());

四、根据微信CODE 获取手机信息

csharp 复制代码
            String phoneNumber = wxMaUserService.getPhoneNoInfo(bindDto.getCode()).getPhoneNumber();
相关推荐
奋斗的小乌龟4 小时前
动态创建Agent02
java
吃好睡好便好4 小时前
用while循环语句求和
开发语言·学习·算法·matlab·信息可视化
ZFSS4 小时前
Localization Translate API 集成与使用指南
java·服务器·数据库·人工智能·mysql·ai编程
TechWayfarer4 小时前
查询IP所在地的3种方案:从API到离线库,风控场景怎么选?
开发语言·网络·python·网络协议·tcp/ip
摇滚侠4 小时前
Java 零基础全套教程,集合框架,笔记 153-163
java·开发语言·笔记
nannan12324 小时前
后端技术栈梳理
java
程序员榴莲5 小时前
Python 单例模式
开发语言·python·单例模式
L、2185 小时前
CANN算子开发调试实战:从“Segmentation Fault“到定位根因的完整流程
java·开发语言
狗凯之家源码网5 小时前
基于PHP的多语言跨境电商B2B2C商城系统技术解析
开发语言·php
索木木6 小时前
NCCL SHARP 和 TREE算法
java·服务器·算法