微信扫码登陆

记得访问的是 微信-开放平台


整个流程和微信授权几乎一样,但是要注意的是,AppId与AppSecret是不一样的。
首先先配置微信开放平台的账号

在WeChatAccountConfig.java中增加相应的配置(因为之前已经完成过授权的开发了)。

同授权一样,将配置好微信开放平台WechatOpenConfig.java

@Component
public class WechatOpenConfig {

    @Autowired
    private  WechatAccountConfig wechatAccountConfig;

    @Bean
    public WxMpService wxOpenService(){
        WxMpService wxOpenService = new WxMpServiceImpl();
        wxOpenService.setWxMpConfigStorage(wxOpenConfigStorage());
        return wxOpenService;
    }
    
    @Bean
    public WxMpConfigStorage wxOpenConfigStorage(){
        WxMpInMemoryConfigStorage wxMpInMemoryConfigStorage = new WxMpInMemoryConfigStorage();
        wxMpInMemoryConfigStorage.setAppId(wechatAccountConfig.getOpenAppId());
        wxMpInMemoryConfigStorage.setSecret(wechatAccountConfig.getOpenAppSecret());
        return wxMpInMemoryConfigStorage;
    }
}

WxMpService是配置了看Github上的SDK:https://github.com/Wechat-Group/WxJava。在公众号开发-支付的文章中有说明,不再赘述。

再去WechatController中调用wxOpenService

@Controller
@RequestMapping("/wechat")
@Slf4j
public class WechatController {
    @Autowired
    private WxMpService wxOpenService;
    @GetMapping("/qrAuthorize")
    public String qrAuthorize(@RequestParam("returnUrl") String returnUrl) {
        String url = "http://sell35.natapp1.cc/sell/wechat/qrUserInfo";
        String redirectUrl = wxOpenService.buildQrConnectUrl(url, WxConsts.QRCONNECT_SCOPE_SNSAPI_LOGIN, URLEncoder.encode(returnUrl));
        return "redirect:" + redirectUrl;
    }

    @GetMapping("/qrUserInfo")
    public String qrUserInfo(@RequestParam("code") String code,
                             @RequestParam("state") String returnUrl) {
        WxMpOAuth2AccessToken wxMpOAuth2AccessToken = new WxMpOAuth2AccessToken();
        try {
            wxMpOAuth2AccessToken = wxOpenService.oauth2getAccessToken(code);
        } catch (WxErrorException e) {
            log.error("【微信网页扫码登陆】{}", e);
            throw new SellException(ResultEnum.WECHAT_MP_ERROR.getCode(), e.getError().getErrorMsg());
        }
        log.info("wxMpOAuth2AccessToken={}", wxMpOAuth2AccessToken);
        String openId = wxMpOAuth2AccessToken.getOpenId();

        return "redirect:" + returnUrl + "?openid=" + openId;
    }
}

当访问"/wechat/qrAuthorize"这个链接时,则会跳转进入微信扫码界面。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录1、注册微信开发平台2、微信开发平台添加网站应用3、PC微信登录流程介绍4、获取用户基本信息(UnionID机...
    Javen205阅读 11,662评论 2 20
  • 1、前台链接进入微信官方的授权接口,当点击链接时,则根据url中的appid自动生成公司微信二维码 2、先定义好微...
    寄去远方的盛夏阅读 6,500评论 3 3
  • 1 去微信开放平台创建应用 审核通过后会得到AppID和AppSecret(这两个很重要) 2 接入自己的网站 (...
    史史小子阅读 1,246评论 0 2
  • 今天咱们来聊一聊“日月盈昃”这四个字。 昃是一个我们比较少用的字,读zè。先来解释一下这个字。 回到甲骨文创立之处...
    曹斐阅读 813评论 0 4
  • 最近,我发现自己越来越恐慌。虽然并不是24小时一直都明显存在,但是它总是隐隐约约就在那里,时不时还强烈袭击一次。 ...
    claircat阅读 202评论 0 0