diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpOAuth2Service.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpOAuth2Service.java
new file mode 100644
index 0000000000..9f7de07a6f
--- /dev/null
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpOAuth2Service.java
@@ -0,0 +1,27 @@
+package me.chanjar.weixin.mp.api;
+
+import me.chanjar.weixin.common.service.WxOAuth2Service;
+
+/**
+ * 微信公众号网页授权(OAuth2)服务接口.
+ *
+ *
完整文档见:
+ *
+ * 微信网页授权
+ *
+ *
+ *
+ * 包含以下能力:
+ *
+ * - 构建网页授权 URL
+ * - 通过 code 换取 access_token({@code sns/oauth2/access_token})
+ * - 刷新 access_token({@code sns/oauth2/refresh_token})
+ * - 获取用户基本信息({@code sns/userinfo})
+ * - 校验 access_token 是否有效({@code sns/auth})
+ *
+ *
+ *
+ * @author GitHub Copilot
+ */
+public interface WxMpOAuth2Service extends WxOAuth2Service {
+}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java
index 2d965bf8de..bbc336c07d 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java
@@ -6,7 +6,6 @@
import me.chanjar.weixin.common.enums.TicketType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.service.WxImgProcService;
-import me.chanjar.weixin.common.service.WxOAuth2Service;
import me.chanjar.weixin.common.service.WxOcrService;
import me.chanjar.weixin.common.service.WxService;
import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor;
@@ -758,16 +757,16 @@ public interface WxMpService extends WxService {
/**
* 获取OAuth2服务接口
*
- * @return WxOAuth2Service OAuth2服务接口
+ * @return WxMpOAuth2Service OAuth2服务接口
*/
- WxOAuth2Service getOAuth2Service();
+ WxMpOAuth2Service getOAuth2Service();
/**
* 设置OAuth2服务接口
*
* @param oAuth2Service OAuth2服务接口
*/
- void setOAuth2Service(WxOAuth2Service oAuth2Service);
+ void setOAuth2Service(WxMpOAuth2Service oAuth2Service);
/**
* 获取微信导购服务接口
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java
index 76ab466157..a733b5c4fc 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java
@@ -16,7 +16,6 @@
import me.chanjar.weixin.common.error.WxRuntimeException;
import me.chanjar.weixin.common.executor.CommonUploadRequestExecutor;
import me.chanjar.weixin.common.service.WxImgProcService;
-import me.chanjar.weixin.common.service.WxOAuth2Service;
import me.chanjar.weixin.common.service.WxOcrService;
import me.chanjar.weixin.common.session.StandardSessionManager;
import me.chanjar.weixin.common.session.WxSessionManager;
@@ -141,7 +140,7 @@ public abstract class BaseWxMpServiceImpl implements WxMpService, RequestH
@Getter
@Setter
- private WxOAuth2Service oAuth2Service = new WxMpOAuth2ServiceImpl(this);
+ private WxMpOAuth2Service oAuth2Service = new WxMpOAuth2ServiceImpl(this);
@Getter
@Setter
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImpl.java
index 726311ffa5..3876f06e54 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImpl.java
@@ -10,8 +10,8 @@
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
import me.chanjar.weixin.common.util.http.URIUtil;
+import me.chanjar.weixin.mp.api.WxMpOAuth2Service;
import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.common.service.WxOAuth2Service;
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import org.apache.commons.lang3.StringUtils;
@@ -26,7 +26,7 @@
* created on 2020-08-08
*/
@RequiredArgsConstructor
-public class WxMpOAuth2ServiceImpl implements WxOAuth2Service {
+public class WxMpOAuth2ServiceImpl implements WxMpOAuth2Service {
private final WxMpService wxMpService;
@Override
diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImplTest.java
index 3a094e4008..b0721e2446 100644
--- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImplTest.java
+++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpOAuth2ServiceImplTest.java
@@ -3,6 +3,7 @@
import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.mp.api.WxMpOAuth2Service;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.test.ApiTestModule;
import org.testng.annotations.Guice;
@@ -24,6 +25,11 @@ public class WxMpOAuth2ServiceImplTest {
@Inject
private WxMpService mpService;
+ @Test
+ public void testGetOAuth2ServiceType() {
+ assertThat(this.mpService.getOAuth2Service()).isInstanceOf(WxMpOAuth2Service.class);
+ }
+
@Test
public void testBuildAuthorizationUrl() {
final String url = this.mpService.getOAuth2Service().buildAuthorizationUrl("http://www.baidu.com", "test", "GOD");
diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpOAuth2ServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpOAuth2ServiceImpl.java
index 3f990ecfeb..31664c5c1d 100644
--- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpOAuth2ServiceImpl.java
+++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMpOAuth2ServiceImpl.java
@@ -5,6 +5,7 @@
import me.chanjar.weixin.common.service.WxOAuth2Service;
import me.chanjar.weixin.common.service.WxOAuth2ServiceDecorator;
import me.chanjar.weixin.common.util.http.URIUtil;
+import me.chanjar.weixin.mp.api.WxMpOAuth2Service;
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import me.chanjar.weixin.open.api.WxOpenComponentService;
import org.apache.commons.lang3.StringUtils;
@@ -14,7 +15,7 @@
*
* @author 广州跨界
*/
-public class WxOpenMpOAuth2ServiceImpl extends WxOAuth2ServiceDecorator {
+public class WxOpenMpOAuth2ServiceImpl extends WxOAuth2ServiceDecorator implements WxMpOAuth2Service {
private final WxOpenComponentService wxOpenComponentService;
private final WxMpConfigStorage wxMpConfigStorage;