1. 程式人生 > >微信獲取openid和網頁授權

微信獲取openid和網頁授權

獲取openid 
1.引入依賴weixin-java-mp
2.構造網頁授權
 @GetMapping("/authorize")
    public String authorize(@RequestParam("returnUrl") String returnUrl) {
        //1. 配置WxMpService
        //2. 呼叫方法
        String url = projectUrlConfig.getWechatMpAuthorize() + "/sell/wechat/userInfo";
        String redirectUrl = wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAUTH2_SCOPE_BASE, URLEncoder.encode(returnUrl));
        return "redirect:" + redirectUrl;
    }

 

    @GetMapping("/userInfo")
    public String userInfo(@RequestParam("code") String code,
                         @RequestParam("state") String returnUrl) {
        WxMpOAuth2AccessToken wxMpOAuth2AccessToken = new WxMpOAuth2AccessToken();
        try {
            wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(code);
        } catch (WxErrorException e) {
            log.error("【微信網頁授權】{}", e);
            throw new SellException(ResultEnum.WECHAT_MP_ERROR.getCode(), e.getError().getErrorMsg());
        }
  //拿到openid
        String openId = wxMpOAuth2AccessToken.getOpenId();

        return "redirect:" + returnUrl + "?openid=" + openId;
    }
微信網頁授權
訪問專案的時候會重定向到wechat/authorize(在前端專案中需要配置專案地址...sell.com和獲取openid的地址...wechat/authorize)
成功的話會提示請在微信客戶端開啟連結
電腦可以直接訪問sell.com(有相應配置host,域名直接指向了虛擬機器)
手機要訪問sell.com的話,要在手機上配置http代理,填寫電腦的ip(在無線區域網中),埠8888