From 5d521e3ea4527f704941acef9c2164ab0d9ccb1b Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Sun, 4 Aug 2024 15:33:37 +0800 Subject: [PATCH] =?UTF-8?q?:hankey:=20=E6=B7=BB=E5=8A=A0=E6=96=B0=E7=89=88?= =?UTF-8?q?`=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1=E6=89=AB=E7=A0=81`?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=83=BD=E5=8A=9B=EF=BC=88PS.=20=E6=96=B0?= =?UTF-8?q?=E7=89=88=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E9=99=A4=E4=BA=86=E6=94=AF=E6=8C=81=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=89=AB=E7=A0=81=E7=99=BB=E5=BD=95=E4=B9=8B=E5=A4=96=EF=BC=8C?= =?UTF-8?q?=E8=BF=98=E6=94=AF=E6=8C=81=E9=80=9A=E8=BF=87=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A1=8C=E9=9D=A2=E7=AB=AF=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=BF=AB=E9=80=9F=E7=99=BB=E5=BD=95=E3=80=82=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/zhyd/oauth/config/AuthConfig.java | 16 ++++++++++++ .../zhyd/oauth/config/AuthDefaultSource.java | 26 +++++++++++++++++++ .../zhyd/oauth/enums/AuthResponseStatus.java | 1 + .../AuthWeChatEnterpriseQrcodeRequest.java | 1 + 4 files changed, 44 insertions(+) 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(); } }