code: public String getOauthPageUrl(String redirectUrl, OauthScope scope, String state) {
          BeanUtil.requireNonNull(redirectUrl, "redirectUrl is null");
          BeanUtil.requireNonNull(scope, "scope is null");
          String userState = StrUtil.isBlank(state) ? "STATE" : state;
          String url = null;
          try {
              url = URLEncoder.encode(redirectUrl, "UTF-8");
          } catch (UnsupportedEncodingException e) {
              LOG.error("异常", e);
          }
          StringBuilder stringBuilder = new StringBuilder("https://open.weixin.qq.com/connect/oauth2/authorize?");
          stringBuilder.append("appid=").append(this.config.getAppid())
                  .append("&redirect_uri=").append(url)
                  .append("&response_type=code&scope=").append(scope.toString())
                  .append("&state=")
                  .append(userState)
                  .append("#wechat_redirect");
          return stringBuilder.toString();
      }
docs: 生成回调url，这个结果要求用户在微信中打开，即可获得token，并指向redirectUrl
  
  @param redirectUrl 用户自己设置的回调地址
  @param scope       授权作用域
  @param state       用户自带参数
  @return 回调url，用户在微信中打开即可开始授权