实现微信公众号扫码登录全过程(最详细)

这篇文章介绍了使用微信公众号如何做到从web端提供二维码扫描登录功能,主要分认证的公众号和未认证的普通公众号,两个方向实现扫描登录。这篇文章介绍了使用微信公众号如何做到从web端提供二维码扫描登录功能,主要分认证的公众号和未认证的普通公众号,两个方向实现扫描登录。

TOC(真心顶不住微信公众号开发文档的乱并且刚接触的开发者绝对一头雾水,决心编写,防止更多人跳坑!)

前期准备

注册并配置微信公众号,获取 AppID 和 AppSecret。
配置开发者模式,设置服务器 URL 和 Token。(这一步以下会细讲)

认证的公众号

认证的公众号一年年费 300RMB,可以拥有“生成带参数的二维码”这一项接口权限,以及支付借口权限等具体可以去官方文档登录后查看 “设置与开发”-》“接口权限”
认证号扫描登录流程图

配置准备

在 springboot 中 application.yml 配置微信公众号配置,appid、secret、token、aesKey,以及回调的接口 callback

wx:
  mp:
    callback:
    configs:
      - appId: # 第一个公众号的appid
        secret: # 公众号的appsecret
        token: # 接口配置里的Token值
        aesKey: # 接口配置里的EncodingAESKey值

在 pom.xml 添加微信公众号开发的架包(或者自己写也可省了略)

        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-mp</artifactId>
        </dependency>

初始化 WxMpService

在配置类中初始化 WxMpService 类的方法返回 server 注入 Bean 中,如下

    @Bean
    public WxMpService wxMpService() {
   
        final List<WxMpProperties.MpConfig> configs = this.properties.getConfigs();//这里是获取application.yml配置信息,可以自己写方法获取
        if (configs == null) {
   
            throw new RuntimeException("没有配置微信公众号信息!");
        }

        WxMpService service = new WxMpServiceImpl();
        service.setMultiConfigStorages(configs
                .stream().map(a -> {
   
                    WxMpDefaultConfigImpl configStorage;
                    configStorage = new WxMpDefaultConfigImpl();
                    configStorage.setAppId(a.getAppId());
                    configStorage.setSecret(a.getSecret());
                    configStorage.setToken(a.getToken());
                    configStorage.setAesKey(a.getAesKey());
                    return configStorage;
                }).collect(Collectors.toMap(WxMpDefaultConfigImpl::getAppId, a -> a, (o, n) -> o)));
        return service;
    }

核心代码

可以使用 Cpolar Web UI 来做内网穿透进行测试,具体安装和设置可以在本站搜索“Cpolar 内网穿透”,没有的只能发布自己服务器进行 url 配置

  1. 首先先在微信公众号填写服务器配置
    服务器配置
    {% note warning modern %}
    服务器地址(URL)一定要外网能访问,并且验证签名后返回 echostr,服务器配置的 token 和公众号的 token 要一致,这样才能在公众号上配置成功
    {% endnote %}
    {% note warning modern %}
    配置完后一定要启用,不然无法生效
    {% endnote %}
    验证代码
  /**
     * 微信认证配置接口
     *
     * @param signature
     * @param timestamp
     * @param nonce
     * @param echostr
     * @return
     */
    @GetMapping(value = "/authGet", produces 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值