diff --git a/src/main/java/com/jfinal/weixin/sdk/api/AccessTokenApi.java b/src/main/java/com/jfinal/weixin/sdk/api/AccessTokenApi.java index a4b3c5c83c66c24ca063e5d9d4fdecc3292e342a..d393f3ca0857e4f9e55a814bc82a0ffb2acf39b9 100644 --- a/src/main/java/com/jfinal/weixin/sdk/api/AccessTokenApi.java +++ b/src/main/java/com/jfinal/weixin/sdk/api/AccessTokenApi.java @@ -8,6 +8,7 @@ package com.jfinal.weixin.sdk.api; import java.util.Map; import java.util.concurrent.Callable; +import java.util.function.Function; import com.jfinal.kit.StrKit; import com.jfinal.weixin.sdk.cache.IAccessTokenCache; @@ -34,6 +35,17 @@ public class AccessTokenApi { // 用于手动设置的 accessToken private static AccessToken accessToken=null; + // 用于第三方平台刷新 accessToken + private static Function refreshAccessTokenFunction = null; + + public static Function getRefreshAccessTokenFunction() { + return refreshAccessTokenFunction; + } + + public static void setRefreshAccessTokenFunction(Function refreshAccessTokenFunction) { + AccessTokenApi.refreshAccessTokenFunction = refreshAccessTokenFunction; + } + public static void setAccessToken(AccessToken ak){ accessToken=ak; } @@ -89,6 +101,10 @@ public class AccessTokenApi { * @return AccessToken */ public static AccessToken refreshAccessToken(ApiConfig ac) { + if (refreshAccessTokenFunction != null) { + return refreshAccessTokenFunction.apply(ac); + } + String appId = ac.getAppId(); String appSecret = ac.getAppSecret(); final Map queryParas = ParaMap.create("appid", appId).put("secret", appSecret).getData();