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 extends AuthDefaultRequest> 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();
}
}