diff --git a/src/main/java/me/zhyd/oauth/config/AuthConfig.java b/src/main/java/me/zhyd/oauth/config/AuthConfig.java index fb3b4bd..6dbb4b0 100644 --- a/src/main/java/me/zhyd/oauth/config/AuthConfig.java +++ b/src/main/java/me/zhyd/oauth/config/AuthConfig.java @@ -198,4 +198,20 @@ public class AuthConfig { * @see team id */ private String teamId; + + /** + * 新版企业微信 Web 登录时的参数, + * + * 登录类型。ServiceApp:服务商登录;CorpApp:企业自建/代开发应用登录。 + * @see https://developer.work.weixin.qq.com/document/path/98152 + * @since 1.16.7 + */ + private String loginType = "CorpApp"; + + /** + * 语言编码 + * + * @since 1.16.7 + */ + private String lang = "zh"; } diff --git a/src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java b/src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java index 6ff75d9..b1bf595 100644 --- a/src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java +++ b/src/main/java/me/zhyd/oauth/config/AuthDefaultSource.java @@ -764,6 +764,32 @@ public enum AuthDefaultSource implements AuthSource { return AuthWeChatEnterpriseQrcodeRequest.class; } }, + /** + * 新版企业微信 Web 登录(扫码),参考 https://developer.work.weixin.qq.com/document/path/98152 + * + * @since 1.16.7 + */ + WECHAT_ENTERPRISE_V2 { + @Override + public String authorize() { + return "https://login.work.weixin.qq.com/wwlogin/sso/login"; + } + + @Override + public String accessToken() { + return "https://qyapi.weixin.qq.com/cgi-bin/gettoken"; + } + + @Override + public String userInfo() { + return "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo"; + } + + @Override + public Class getTargetClass() { + return AuthWeChatEnterpriseQrcodeV2Request.class; + } + }, /** * 企业微信二维码第三方登录 */ diff --git a/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java b/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java index 5cd6c2b..4a9b30a 100644 --- a/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java +++ b/src/main/java/me/zhyd/oauth/enums/AuthResponseStatus.java @@ -33,6 +33,7 @@ public enum AuthResponseStatus { ILLEGAL_TEAM_ID(5013, "Invalid team id"), ILLEGAL_CLIENT_ID(5014, "Invalid client id"), ILLEGAL_CLIENT_SECRET(5015, "Invalid client secret"), + ILLEGAL_WECHAT_AGENT_ID(5016, "Illegal wechat agent id"), ; private final int code; diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseQrcodeRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseQrcodeRequest.java index 127ee5f..2e1ae55 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseQrcodeRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatEnterpriseQrcodeRequest.java @@ -31,6 +31,7 @@ public class AuthWeChatEnterpriseQrcodeRequest extends AbstractAuthWeChatEnterpr .queryParam("agentid", config.getAgentId()) .queryParam("redirect_uri", config.getRedirectUri()) .queryParam("state", getRealState(state)) + .queryParam("lang", config.getLang()) .build(); } }