mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-25 01:14:36 +08:00
#1039 微信公众号接口地址域名部分进行可配置化 改造
This commit is contained in:
parent
084ffcf8bb
commit
af9b3a4529
@ -1,12 +1,13 @@
|
|||||||
package me.chanjar.weixin.mp.api;
|
package me.chanjar.weixin.mp.api;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.concurrent.locks.Lock;
|
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.WxAccessToken;
|
import me.chanjar.weixin.common.bean.WxAccessToken;
|
||||||
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||||
|
import me.chanjar.weixin.mp.bean.WxMpHostConfig;
|
||||||
import me.chanjar.weixin.mp.enums.TicketType;
|
import me.chanjar.weixin.mp.enums.TicketType;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.concurrent.locks.Lock;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信客户端配置存储.
|
* 微信客户端配置存储.
|
||||||
*
|
*
|
||||||
@ -96,4 +97,8 @@ public interface WxMpConfigStorage {
|
|||||||
*/
|
*/
|
||||||
boolean autoRefreshToken();
|
boolean autoRefreshToken();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到微信接口地址域名部分的自定义设置信息.
|
||||||
|
*/
|
||||||
|
WxMpHostConfig getHostConfig();
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import java.util.concurrent.locks.ReentrantLock;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import me.chanjar.weixin.common.bean.WxAccessToken;
|
import me.chanjar.weixin.common.bean.WxAccessToken;
|
||||||
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||||
|
import me.chanjar.weixin.mp.bean.WxMpHostConfig;
|
||||||
import me.chanjar.weixin.mp.enums.TicketType;
|
import me.chanjar.weixin.mp.enums.TicketType;
|
||||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||||
|
|
||||||
@ -179,4 +180,9 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage, Serializabl
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxMpHostConfig getHostConfig() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -157,13 +157,13 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state) {
|
public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state) {
|
||||||
return String.format(CONNECT_OAUTH2_AUTHORIZE_URL.getUrl(),
|
return String.format(CONNECT_OAUTH2_AUTHORIZE_URL.getUrl(this.getWxMpConfigStorage()),
|
||||||
this.getWxMpConfigStorage().getAppId(), URIUtil.encodeURIComponent(redirectURI), scope, StringUtils.trimToEmpty(state));
|
this.getWxMpConfigStorage().getAppId(), URIUtil.encodeURIComponent(redirectURI), scope, StringUtils.trimToEmpty(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String buildQrConnectUrl(String redirectURI, String scope, String state) {
|
public String buildQrConnectUrl(String redirectURI, String scope, String state) {
|
||||||
return String.format(QRCONNECT_URL.getUrl(), this.getWxMpConfigStorage().getAppId(),
|
return String.format(QRCONNECT_URL.getUrl(this.getWxMpConfigStorage()), this.getWxMpConfigStorage().getAppId(),
|
||||||
URIUtil.encodeURIComponent(redirectURI), scope, StringUtils.trimToEmpty(state));
|
URIUtil.encodeURIComponent(redirectURI), scope, StringUtils.trimToEmpty(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,14 +179,14 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpOAuth2AccessToken oauth2getAccessToken(String code) throws WxErrorException {
|
public WxMpOAuth2AccessToken oauth2getAccessToken(String code) throws WxErrorException {
|
||||||
String url = String.format(OAUTH2_ACCESS_TOKEN_URL.getUrl(), this.getWxMpConfigStorage().getAppId(),
|
String url = String.format(OAUTH2_ACCESS_TOKEN_URL.getUrl(this.getWxMpConfigStorage()), this.getWxMpConfigStorage().getAppId(),
|
||||||
this.getWxMpConfigStorage().getSecret(), code);
|
this.getWxMpConfigStorage().getSecret(), code);
|
||||||
return this.getOAuth2AccessToken(url);
|
return this.getOAuth2AccessToken(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpOAuth2AccessToken oauth2refreshAccessToken(String refreshToken) throws WxErrorException {
|
public WxMpOAuth2AccessToken oauth2refreshAccessToken(String refreshToken) throws WxErrorException {
|
||||||
String url = String.format(OAUTH2_REFRESH_TOKEN_URL.getUrl(), this.getWxMpConfigStorage().getAppId(), refreshToken);
|
String url = String.format(OAUTH2_REFRESH_TOKEN_URL.getUrl(this.getWxMpConfigStorage()), this.getWxMpConfigStorage().getAppId(), refreshToken);
|
||||||
return this.getOAuth2AccessToken(url);
|
return this.getOAuth2AccessToken(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
|
|||||||
lang = "zh_CN";
|
lang = "zh_CN";
|
||||||
}
|
}
|
||||||
|
|
||||||
String url = String.format(OAUTH2_USERINFO_URL.getUrl(), token.getAccessToken(), token.getOpenId(), lang);
|
String url = String.format(OAUTH2_USERINFO_URL.getUrl(this.getWxMpConfigStorage()), token.getAccessToken(), token.getOpenId(), lang);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
RequestExecutor<String, String> executor = SimpleGetRequestExecutor.create(this);
|
RequestExecutor<String, String> executor = SimpleGetRequestExecutor.create(this);
|
||||||
@ -209,7 +209,7 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean oauth2validateAccessToken(WxMpOAuth2AccessToken token) {
|
public boolean oauth2validateAccessToken(WxMpOAuth2AccessToken token) {
|
||||||
String url = String.format(OAUTH2_VALIDATE_TOKEN_URL.getUrl(), token.getAccessToken(), token.getOpenId());
|
String url = String.format(OAUTH2_VALIDATE_TOKEN_URL.getUrl(this.getWxMpConfigStorage()), token.getAccessToken(), token.getOpenId());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
SimpleGetRequestExecutor.create(this).execute(url, null);
|
SimpleGetRequestExecutor.create(this).execute(url, null);
|
||||||
@ -252,7 +252,7 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String get(WxMpApiUrl url, String queryParam) throws WxErrorException {
|
public String get(WxMpApiUrl url, String queryParam) throws WxErrorException {
|
||||||
return this.get(url.getUrl(), queryParam);
|
return this.get(url.getUrl(this.getWxMpConfigStorage()), queryParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -262,12 +262,12 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String post(WxMpApiUrl url, String postData) throws WxErrorException {
|
public String post(WxMpApiUrl url, String postData) throws WxErrorException {
|
||||||
return this.post(url.getUrl(), postData);
|
return this.post(url.getUrl(this.getWxMpConfigStorage()), postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T, E> T execute(RequestExecutor<T, E> executor, WxMpApiUrl url, E data) throws WxErrorException {
|
public <T, E> T execute(RequestExecutor<T, E> executor, WxMpApiUrl url, E data) throws WxErrorException {
|
||||||
return this.execute(executor, url.getUrl(), data);
|
return this.execute(executor, url.getUrl(this.getWxMpConfigStorage()), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8,7 +8,6 @@ import me.chanjar.weixin.common.error.WxErrorException;
|
|||||||
import me.chanjar.weixin.mp.api.WxMpAiOpenService;
|
import me.chanjar.weixin.mp.api.WxMpAiOpenService;
|
||||||
import me.chanjar.weixin.mp.api.WxMpService;
|
import me.chanjar.weixin.mp.api.WxMpService;
|
||||||
import me.chanjar.weixin.mp.enums.AiLangType;
|
import me.chanjar.weixin.mp.enums.AiLangType;
|
||||||
import me.chanjar.weixin.mp.enums.WxMpApiUrl;
|
|
||||||
import me.chanjar.weixin.mp.util.requestexecuter.voice.VoiceUploadRequestExecutor;
|
import me.chanjar.weixin.mp.util.requestexecuter.voice.VoiceUploadRequestExecutor;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -34,7 +33,7 @@ public class WxMpAiOpenServiceImpl implements WxMpAiOpenService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.wxMpService.execute(VoiceUploadRequestExecutor.create(this.wxMpService.getRequestHttp()),
|
this.wxMpService.execute(VoiceUploadRequestExecutor.create(this.wxMpService.getRequestHttp()),
|
||||||
String.format(VOICE_UPLOAD_URL.getUrl(), "mp3", voiceId, lang.getCode()),
|
String.format(VOICE_UPLOAD_URL.getUrl(this.wxMpService.getWxMpConfigStorage()), "mp3", voiceId, lang.getCode()),
|
||||||
voiceFile);
|
voiceFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,7 +45,8 @@ public class WxMpAiOpenServiceImpl implements WxMpAiOpenService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String translate(AiLangType langFrom, AiLangType langTo, String content) throws WxErrorException {
|
public String translate(AiLangType langFrom, AiLangType langTo, String content) throws WxErrorException {
|
||||||
String response = this.wxMpService.post(String.format(TRANSLATE_URL.getUrl(), langFrom.getCode(), langTo.getCode()), content);
|
String response = this.wxMpService.post(String.format(TRANSLATE_URL.getUrl(this.wxMpService.getWxMpConfigStorage()),
|
||||||
|
langFrom.getCode(), langTo.getCode()), content);
|
||||||
|
|
||||||
WxError error = WxError.fromJson(response, WxType.MP);
|
WxError error = WxError.fromJson(response, WxType.MP);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
@ -13,7 +13,6 @@ import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
|
|||||||
import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfAccountRequest;
|
import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfAccountRequest;
|
||||||
import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfSessionRequest;
|
import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfSessionRequest;
|
||||||
import me.chanjar.weixin.mp.bean.kefu.result.*;
|
import me.chanjar.weixin.mp.bean.kefu.result.*;
|
||||||
import me.chanjar.weixin.mp.enums.WxMpApiUrl;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -68,13 +67,14 @@ public class WxMpKefuServiceImpl implements WxMpKefuService {
|
|||||||
public boolean kfAccountUploadHeadImg(String kfAccount, File imgFile) throws WxErrorException {
|
public boolean kfAccountUploadHeadImg(String kfAccount, File imgFile) throws WxErrorException {
|
||||||
WxMediaUploadResult responseContent = this.wxMpService
|
WxMediaUploadResult responseContent = this.wxMpService
|
||||||
.execute(MediaUploadRequestExecutor.create(this.wxMpService.getRequestHttp()),
|
.execute(MediaUploadRequestExecutor.create(this.wxMpService.getRequestHttp()),
|
||||||
String.format(KFACCOUNT_UPLOAD_HEAD_IMG.getUrl(), kfAccount), imgFile);
|
String.format(KFACCOUNT_UPLOAD_HEAD_IMG.getUrl(this.wxMpService.getWxMpConfigStorage()), kfAccount), imgFile);
|
||||||
return responseContent != null;
|
return responseContent != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean kfAccountDel(String kfAccount) throws WxErrorException {
|
public boolean kfAccountDel(String kfAccount) throws WxErrorException {
|
||||||
String responseContent = this.wxMpService.get(String.format(KFACCOUNT_DEL.getUrl(), kfAccount), null);
|
String responseContent = this.wxMpService.get(String.format(KFACCOUNT_DEL.getUrl(this.wxMpService.getWxMpConfigStorage()),
|
||||||
|
kfAccount), null);
|
||||||
return responseContent != null;
|
return responseContent != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,13 +94,15 @@ public class WxMpKefuServiceImpl implements WxMpKefuService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpKfSessionGetResult kfSessionGet(String openid) throws WxErrorException {
|
public WxMpKfSessionGetResult kfSessionGet(String openid) throws WxErrorException {
|
||||||
String responseContent = this.wxMpService.get(String.format(KFSESSION_GET_SESSION.getUrl(), openid), null);
|
String responseContent = this.wxMpService.get(String.format(KFSESSION_GET_SESSION
|
||||||
|
.getUrl(this.wxMpService.getWxMpConfigStorage()), openid), null);
|
||||||
return WxMpKfSessionGetResult.fromJson(responseContent);
|
return WxMpKfSessionGetResult.fromJson(responseContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpKfSessionList kfSessionList(String kfAccount) throws WxErrorException {
|
public WxMpKfSessionList kfSessionList(String kfAccount) throws WxErrorException {
|
||||||
String responseContent = this.wxMpService.get(String.format(KFSESSION_GET_SESSION_LIST.getUrl(), kfAccount), null);
|
String responseContent = this.wxMpService.get(String.format(KFSESSION_GET_SESSION_LIST
|
||||||
|
.getUrl(this.wxMpService.getWxMpConfigStorage()), kfAccount), null);
|
||||||
return WxMpKfSessionList.fromJson(responseContent);
|
return WxMpKfSessionList.fromJson(responseContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMediaUploadResult mediaUpload(String mediaType, File file) throws WxErrorException {
|
public WxMediaUploadResult mediaUpload(String mediaType, File file) throws WxErrorException {
|
||||||
String url = String.format(MEDIA_UPLOAD_URL.getUrl(), mediaType);
|
String url = String.format(MEDIA_UPLOAD_URL.getUrl(this.wxMpService.getWxMpConfigStorage()), mediaType);
|
||||||
return this.wxMpService.execute(MediaUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), url, file);
|
return this.wxMpService.execute(MediaUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), url, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpMaterialUploadResult materialFileUpload(String mediaType, WxMpMaterial material) throws WxErrorException {
|
public WxMpMaterialUploadResult materialFileUpload(String mediaType, WxMpMaterial material) throws WxErrorException {
|
||||||
String url = String.format(MATERIAL_ADD_URL.getUrl(), mediaType);
|
String url = String.format(MATERIAL_ADD_URL.getUrl(this.wxMpService.getWxMpConfigStorage()), mediaType);
|
||||||
return this.wxMpService.execute(MaterialUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), url, material);
|
return this.wxMpService.execute(MaterialUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), url, material);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +105,8 @@ public class WxMpQrcodeServiceImpl implements WxMpQrcodeService {
|
|||||||
@Override
|
@Override
|
||||||
public String qrCodePictureUrl(String ticket, boolean needShortUrl) throws WxErrorException {
|
public String qrCodePictureUrl(String ticket, boolean needShortUrl) throws WxErrorException {
|
||||||
try {
|
try {
|
||||||
String resultUrl = String.format(SHOW_QRCODE_WITH_TICKET.getUrl(), URLEncoder.encode(ticket, StandardCharsets.UTF_8.name()));
|
String resultUrl = String.format(SHOW_QRCODE_WITH_TICKET.getUrl(this.wxMpService.getWxMpConfigStorage()),
|
||||||
|
URLEncoder.encode(ticket, StandardCharsets.UTF_8.name()));
|
||||||
if (needShortUrl) {
|
if (needShortUrl) {
|
||||||
return this.wxMpService.shortUrl(resultUrl);
|
return this.wxMpService.shortUrl(resultUrl);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ import me.chanjar.weixin.common.util.http.HttpType;
|
|||||||
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||||
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
|
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
|
||||||
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
|
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
|
||||||
import me.chanjar.weixin.mp.enums.WxMpApiUrl;
|
|
||||||
import org.apache.http.HttpHost;
|
import org.apache.http.HttpHost;
|
||||||
import org.apache.http.client.config.RequestConfig;
|
import org.apache.http.client.config.RequestConfig;
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
@ -19,7 +18,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
|
|
||||||
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Other.*;
|
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Other.GET_ACCESS_TOKEN_URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* apache http client方式实现.
|
* apache http client方式实现.
|
||||||
@ -67,20 +66,20 @@ public class WxMpServiceHttpClientImpl extends BaseWxMpServiceImpl<CloseableHttp
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAccessToken(boolean forceRefresh) throws WxErrorException {
|
public String getAccessToken(boolean forceRefresh) throws WxErrorException {
|
||||||
if (!this.getWxMpConfigStorage().isAccessTokenExpired() && !forceRefresh) {
|
final WxMpConfigStorage config = this.getWxMpConfigStorage();
|
||||||
return this.getWxMpConfigStorage().getAccessToken();
|
if (!config.isAccessTokenExpired() && !forceRefresh) {
|
||||||
|
return config.getAccessToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
Lock lock = this.getWxMpConfigStorage().getAccessTokenLock();
|
Lock lock = config.getAccessTokenLock();
|
||||||
lock.lock();
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
String url = String.format(GET_ACCESS_TOKEN_URL.getUrl(),
|
String url = String.format(GET_ACCESS_TOKEN_URL.getUrl(config), config.getAppId(), config.getSecret());
|
||||||
this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret());
|
|
||||||
try {
|
try {
|
||||||
HttpGet httpGet = new HttpGet(url);
|
HttpGet httpGet = new HttpGet(url);
|
||||||
if (this.getRequestHttpProxy() != null) {
|
if (this.getRequestHttpProxy() != null) {
|
||||||
RequestConfig config = RequestConfig.custom().setProxy(this.getRequestHttpProxy()).build();
|
RequestConfig requestConfig = RequestConfig.custom().setProxy(this.getRequestHttpProxy()).build();
|
||||||
httpGet.setConfig(config);
|
httpGet.setConfig(requestConfig);
|
||||||
}
|
}
|
||||||
try (CloseableHttpResponse response = getRequestHttpClient().execute(httpGet)) {
|
try (CloseableHttpResponse response = getRequestHttpClient().execute(httpGet)) {
|
||||||
String resultContent = new BasicResponseHandler().handleResponse(response);
|
String resultContent = new BasicResponseHandler().handleResponse(response);
|
||||||
@ -89,8 +88,8 @@ public class WxMpServiceHttpClientImpl extends BaseWxMpServiceImpl<CloseableHttp
|
|||||||
throw new WxErrorException(error);
|
throw new WxErrorException(error);
|
||||||
}
|
}
|
||||||
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
|
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
|
||||||
this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
|
config.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
|
||||||
return this.getWxMpConfigStorage().getAccessToken();
|
return config.getAccessToken();
|
||||||
} finally {
|
} finally {
|
||||||
httpGet.releaseConnection();
|
httpGet.releaseConnection();
|
||||||
}
|
}
|
||||||
|
@ -51,15 +51,15 @@ public class WxMpServiceJoddHttpImpl extends BaseWxMpServiceImpl<HttpConnectionP
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAccessToken(boolean forceRefresh) throws WxErrorException {
|
public String getAccessToken(boolean forceRefresh) throws WxErrorException {
|
||||||
if (!this.getWxMpConfigStorage().isAccessTokenExpired() && !forceRefresh) {
|
final WxMpConfigStorage config = this.getWxMpConfigStorage();
|
||||||
return this.getWxMpConfigStorage().getAccessToken();
|
if (!config.isAccessTokenExpired() && !forceRefresh) {
|
||||||
|
return config.getAccessToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
Lock lock = this.getWxMpConfigStorage().getAccessTokenLock();
|
Lock lock = config.getAccessTokenLock();
|
||||||
lock.lock();
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
String url = String.format(GET_ACCESS_TOKEN_URL.getUrl(),
|
String url = String.format(GET_ACCESS_TOKEN_URL.getUrl(config), config.getAppId(), config.getSecret());
|
||||||
this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret());
|
|
||||||
|
|
||||||
HttpRequest request = HttpRequest.get(url);
|
HttpRequest request = HttpRequest.get(url);
|
||||||
|
|
||||||
@ -76,9 +76,9 @@ public class WxMpServiceJoddHttpImpl extends BaseWxMpServiceImpl<HttpConnectionP
|
|||||||
throw new WxErrorException(error);
|
throw new WxErrorException(error);
|
||||||
}
|
}
|
||||||
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
|
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
|
||||||
this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
|
config.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
|
||||||
|
|
||||||
return this.getWxMpConfigStorage().getAccessToken();
|
return config.getAccessToken();
|
||||||
} finally {
|
} finally {
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
}
|
}
|
||||||
|
@ -7,13 +7,12 @@ import me.chanjar.weixin.common.error.WxErrorException;
|
|||||||
import me.chanjar.weixin.common.util.http.HttpType;
|
import me.chanjar.weixin.common.util.http.HttpType;
|
||||||
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
|
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
|
||||||
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
|
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
|
||||||
import me.chanjar.weixin.mp.enums.WxMpApiUrl;
|
|
||||||
import okhttp3.*;
|
import okhttp3.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
|
|
||||||
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Other.*;
|
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Other.GET_ACCESS_TOKEN_URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* okhttp实现.
|
* okhttp实现.
|
||||||
@ -41,15 +40,15 @@ public class WxMpServiceOkHttpImpl extends BaseWxMpServiceImpl<OkHttpClient, OkH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAccessToken(boolean forceRefresh) throws WxErrorException {
|
public String getAccessToken(boolean forceRefresh) throws WxErrorException {
|
||||||
if (!this.getWxMpConfigStorage().isAccessTokenExpired() && !forceRefresh) {
|
final WxMpConfigStorage config = this.getWxMpConfigStorage();
|
||||||
return this.getWxMpConfigStorage().getAccessToken();
|
if (!config.isAccessTokenExpired() && !forceRefresh) {
|
||||||
|
return config.getAccessToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
Lock lock = this.getWxMpConfigStorage().getAccessTokenLock();
|
Lock lock = config.getAccessTokenLock();
|
||||||
lock.lock();
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
String url = String.format(GET_ACCESS_TOKEN_URL.getUrl(),
|
String url = String.format(GET_ACCESS_TOKEN_URL.getUrl(config), config.getAppId(), config.getSecret());
|
||||||
this.getWxMpConfigStorage().getAppId(), this.getWxMpConfigStorage().getSecret());
|
|
||||||
|
|
||||||
Request request = new Request.Builder().url(url).get().build();
|
Request request = new Request.Builder().url(url).get().build();
|
||||||
Response response = getRequestHttpClient().newCall(request).execute();
|
Response response = getRequestHttpClient().newCall(request).execute();
|
||||||
@ -59,9 +58,9 @@ public class WxMpServiceOkHttpImpl extends BaseWxMpServiceImpl<OkHttpClient, OkH
|
|||||||
throw new WxErrorException(error);
|
throw new WxErrorException(error);
|
||||||
}
|
}
|
||||||
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
|
WxAccessToken accessToken = WxAccessToken.fromJson(resultContent);
|
||||||
this.getWxMpConfigStorage().updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
|
config.updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
|
||||||
|
|
||||||
return this.getWxMpConfigStorage().getAccessToken();
|
return config.getAccessToken();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -24,7 +24,7 @@ public class WxMpSubscribeMsgServiceImpl implements WxMpSubscribeMsgService {
|
|||||||
@Override
|
@Override
|
||||||
public String subscribeMsgAuthorizationUrl(String redirectURI, int scene, String reserved) {
|
public String subscribeMsgAuthorizationUrl(String redirectURI, int scene, String reserved) {
|
||||||
WxMpConfigStorage storage = this.wxMpService.getWxMpConfigStorage();
|
WxMpConfigStorage storage = this.wxMpService.getWxMpConfigStorage();
|
||||||
return String.format(SUBSCRIBE_MESSAGE_AUTHORIZE_URL.getUrl(), storage.getAppId(), scene, storage.getTemplateId(),
|
return String.format(SUBSCRIBE_MESSAGE_AUTHORIZE_URL.getUrl(storage), storage.getAppId(), scene, storage.getTemplateId(),
|
||||||
URIUtil.encodeURIComponent(redirectURI), reserved);
|
URIUtil.encodeURIComponent(redirectURI), reserved);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,56 @@
|
|||||||
|
package me.chanjar.weixin.mp.bean;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信接口地址域名部分的自定义设置信息.
|
||||||
|
*
|
||||||
|
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||||
|
* @date 2019-06-09
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class WxMpHostConfig {
|
||||||
|
public static final String API_DEFAULT_HOST_URL = "https://api.weixin.qq.com";
|
||||||
|
public static final String MP_DEFAULT_HOST_URL = "https://mp.weixin.qq.com";
|
||||||
|
public static final String OPEN_DEFAULT_HOST_URL = "https://open.weixin.qq.com";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应于:https://api.weixin.qq.com
|
||||||
|
*/
|
||||||
|
private String apiHost;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应于:https://open.weixin.qq.com
|
||||||
|
*/
|
||||||
|
private String openHost;
|
||||||
|
/**
|
||||||
|
* 对应于:https://mp.weixin.qq.com
|
||||||
|
*/
|
||||||
|
private String mpHost;
|
||||||
|
|
||||||
|
public static String buildUrl(WxMpHostConfig hostConfig, String prefix, String path) {
|
||||||
|
if (hostConfig == null) {
|
||||||
|
return prefix + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hostConfig.getApiHost() != null && prefix.equals(API_DEFAULT_HOST_URL)) {
|
||||||
|
return hostConfig.getApiHost() + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hostConfig.getMpHost() != null && prefix.equals(MP_DEFAULT_HOST_URL)) {
|
||||||
|
return hostConfig.getMpHost() + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hostConfig.getOpenHost() != null && prefix.equals(OPEN_DEFAULT_HOST_URL)) {
|
||||||
|
return hostConfig.getOpenHost() + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
return prefix + path;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,9 @@
|
|||||||
package me.chanjar.weixin.mp.enums;
|
package me.chanjar.weixin.mp.enums;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
|
||||||
|
|
||||||
|
import static me.chanjar.weixin.mp.bean.WxMpHostConfig.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
@ -11,127 +14,125 @@ import lombok.AllArgsConstructor;
|
|||||||
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||||
*/
|
*/
|
||||||
public interface WxMpApiUrl {
|
public interface WxMpApiUrl {
|
||||||
String WX_API_BASE_URL = "https://api.weixin.qq.com";
|
|
||||||
String WX_MP_BASE_URL = "https://mp.weixin.qq.com";
|
|
||||||
String WX_OPEN_BASE_URL = "https://open.weixin.qq.com";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 得到api完整地址.
|
* 得到api完整地址.
|
||||||
*
|
*
|
||||||
|
* @param config 微信公众号配置
|
||||||
* @return api地址
|
* @return api地址
|
||||||
*/
|
*/
|
||||||
String getUrl();
|
String getUrl(WxMpConfigStorage config);
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
enum Device implements WxMpApiUrl {
|
enum Device implements WxMpApiUrl {
|
||||||
/**
|
/**
|
||||||
* get_bind_device.
|
* get_bind_device.
|
||||||
*/
|
*/
|
||||||
DEVICE_GET_BIND_DEVICE(WX_API_BASE_URL, "/device/get_bind_device"),
|
DEVICE_GET_BIND_DEVICE(API_DEFAULT_HOST_URL, "/device/get_bind_device"),
|
||||||
/**
|
/**
|
||||||
* get_openid.
|
* get_openid.
|
||||||
*/
|
*/
|
||||||
DEVICE_GET_OPENID(WX_API_BASE_URL, "/device/get_openid"),
|
DEVICE_GET_OPENID(API_DEFAULT_HOST_URL, "/device/get_openid"),
|
||||||
/**
|
/**
|
||||||
* compel_unbind.
|
* compel_unbind.
|
||||||
*/
|
*/
|
||||||
DEVICE_COMPEL_UNBIND(WX_API_BASE_URL, "/device/compel_unbind?"),
|
DEVICE_COMPEL_UNBIND(API_DEFAULT_HOST_URL, "/device/compel_unbind?"),
|
||||||
/**
|
/**
|
||||||
* unbind.
|
* unbind.
|
||||||
*/
|
*/
|
||||||
DEVICE_UNBIND(WX_API_BASE_URL, "/device/unbind?"),
|
DEVICE_UNBIND(API_DEFAULT_HOST_URL, "/device/unbind?"),
|
||||||
/**
|
/**
|
||||||
* compel_bind.
|
* compel_bind.
|
||||||
*/
|
*/
|
||||||
DEVICE_COMPEL_BIND(WX_API_BASE_URL, "/device/compel_bind"),
|
DEVICE_COMPEL_BIND(API_DEFAULT_HOST_URL, "/device/compel_bind"),
|
||||||
/**
|
/**
|
||||||
* bind.
|
* bind.
|
||||||
*/
|
*/
|
||||||
DEVICE_BIND(WX_API_BASE_URL, "/device/bind"),
|
DEVICE_BIND(API_DEFAULT_HOST_URL, "/device/bind"),
|
||||||
/**
|
/**
|
||||||
* authorize_device.
|
* authorize_device.
|
||||||
*/
|
*/
|
||||||
DEVICE_AUTHORIZE_DEVICE(WX_API_BASE_URL, "/device/authorize_device"),
|
DEVICE_AUTHORIZE_DEVICE(API_DEFAULT_HOST_URL, "/device/authorize_device"),
|
||||||
/**
|
/**
|
||||||
* getqrcode.
|
* getqrcode.
|
||||||
*/
|
*/
|
||||||
DEVICE_GETQRCODE(WX_API_BASE_URL, "/device/getqrcode"),
|
DEVICE_GETQRCODE(API_DEFAULT_HOST_URL, "/device/getqrcode"),
|
||||||
/**
|
/**
|
||||||
* transmsg.
|
* transmsg.
|
||||||
*/
|
*/
|
||||||
DEVICE_TRANSMSG(WX_API_BASE_URL, "/device/transmsg");
|
DEVICE_TRANSMSG(API_DEFAULT_HOST_URL, "/device/transmsg");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
enum Other implements WxMpApiUrl {
|
enum Other implements WxMpApiUrl {
|
||||||
/**
|
/**
|
||||||
* 获取access_token.
|
* 获取access_token.
|
||||||
*/
|
*/
|
||||||
GET_ACCESS_TOKEN_URL(WX_API_BASE_URL, "/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"),
|
GET_ACCESS_TOKEN_URL(API_DEFAULT_HOST_URL, "/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"),
|
||||||
/**
|
/**
|
||||||
* 获得各种类型的ticket.
|
* 获得各种类型的ticket.
|
||||||
*/
|
*/
|
||||||
GET_TICKET_URL(WX_API_BASE_URL, "/cgi-bin/ticket/getticket?type="),
|
GET_TICKET_URL(API_DEFAULT_HOST_URL, "/cgi-bin/ticket/getticket?type="),
|
||||||
/**
|
/**
|
||||||
* 长链接转短链接接口.
|
* 长链接转短链接接口.
|
||||||
*/
|
*/
|
||||||
SHORTURL_API_URL(WX_API_BASE_URL, "/cgi-bin/shorturl"),
|
SHORTURL_API_URL(API_DEFAULT_HOST_URL, "/cgi-bin/shorturl"),
|
||||||
/**
|
/**
|
||||||
* 语义查询接口.
|
* 语义查询接口.
|
||||||
*/
|
*/
|
||||||
SEMANTIC_SEMPROXY_SEARCH_URL(WX_API_BASE_URL, "/semantic/semproxy/search"),
|
SEMANTIC_SEMPROXY_SEARCH_URL(API_DEFAULT_HOST_URL, "/semantic/semproxy/search"),
|
||||||
/**
|
/**
|
||||||
* 用code换取oauth2的access token.
|
* 用code换取oauth2的access token.
|
||||||
*/
|
*/
|
||||||
OAUTH2_ACCESS_TOKEN_URL(WX_API_BASE_URL, "/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code"),
|
OAUTH2_ACCESS_TOKEN_URL(API_DEFAULT_HOST_URL, "/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code"),
|
||||||
/**
|
/**
|
||||||
* 刷新oauth2的access token.
|
* 刷新oauth2的access token.
|
||||||
*/
|
*/
|
||||||
OAUTH2_REFRESH_TOKEN_URL(WX_API_BASE_URL, "/sns/oauth2/refresh_token?appid=%s&grant_type=refresh_token&refresh_token=%s"),
|
OAUTH2_REFRESH_TOKEN_URL(API_DEFAULT_HOST_URL, "/sns/oauth2/refresh_token?appid=%s&grant_type=refresh_token&refresh_token=%s"),
|
||||||
/**
|
/**
|
||||||
* 用oauth2获取用户信息.
|
* 用oauth2获取用户信息.
|
||||||
*/
|
*/
|
||||||
OAUTH2_USERINFO_URL(WX_API_BASE_URL, "/sns/userinfo?access_token=%s&openid=%s&lang=%s"),
|
OAUTH2_USERINFO_URL(API_DEFAULT_HOST_URL, "/sns/userinfo?access_token=%s&openid=%s&lang=%s"),
|
||||||
/**
|
/**
|
||||||
* 验证oauth2的access token是否有效.
|
* 验证oauth2的access token是否有效.
|
||||||
*/
|
*/
|
||||||
OAUTH2_VALIDATE_TOKEN_URL(WX_API_BASE_URL, "/sns/auth?access_token=%s&openid=%s"),
|
OAUTH2_VALIDATE_TOKEN_URL(API_DEFAULT_HOST_URL, "/sns/auth?access_token=%s&openid=%s"),
|
||||||
/**
|
/**
|
||||||
* 获取微信服务器IP地址.
|
* 获取微信服务器IP地址.
|
||||||
*/
|
*/
|
||||||
GET_CALLBACK_IP_URL(WX_API_BASE_URL, "/cgi-bin/getcallbackip"),
|
GET_CALLBACK_IP_URL(API_DEFAULT_HOST_URL, "/cgi-bin/getcallbackip"),
|
||||||
/**
|
/**
|
||||||
* 第三方使用网站应用授权登录的url.
|
* 第三方使用网站应用授权登录的url.
|
||||||
*/
|
*/
|
||||||
QRCONNECT_URL(WX_OPEN_BASE_URL, "/connect/qrconnect?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect"),
|
QRCONNECT_URL(OPEN_DEFAULT_HOST_URL, "/connect/qrconnect?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect"),
|
||||||
/**
|
/**
|
||||||
* oauth2授权的url连接.
|
* oauth2授权的url连接.
|
||||||
*/
|
*/
|
||||||
CONNECT_OAUTH2_AUTHORIZE_URL(WX_OPEN_BASE_URL, "/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s&connect_redirect=1#wechat_redirect"),
|
CONNECT_OAUTH2_AUTHORIZE_URL(OPEN_DEFAULT_HOST_URL, "/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s&connect_redirect=1#wechat_redirect"),
|
||||||
/**
|
/**
|
||||||
* 获取公众号的自动回复规则.
|
* 获取公众号的自动回复规则.
|
||||||
*/
|
*/
|
||||||
GET_CURRENT_AUTOREPLY_INFO_URL(WX_API_BASE_URL, "/cgi-bin/get_current_autoreply_info"),
|
GET_CURRENT_AUTOREPLY_INFO_URL(API_DEFAULT_HOST_URL, "/cgi-bin/get_current_autoreply_info"),
|
||||||
/**
|
/**
|
||||||
* 公众号调用或第三方平台帮公众号调用对公众号的所有api调用(包括第三方帮其调用)次数进行清零.
|
* 公众号调用或第三方平台帮公众号调用对公众号的所有api调用(包括第三方帮其调用)次数进行清零.
|
||||||
*/
|
*/
|
||||||
CLEAR_QUOTA_URL(WX_API_BASE_URL, "/cgi-bin/clear_quota");
|
CLEAR_QUOTA_URL(API_DEFAULT_HOST_URL, "/cgi-bin/clear_quota");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,26 +141,26 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* sets add.
|
* sets add.
|
||||||
*/
|
*/
|
||||||
USER_ACTION_SETS_ADD(WX_API_BASE_URL, "/marketing/user_action_sets/add?version=v1.0"),
|
USER_ACTION_SETS_ADD(API_DEFAULT_HOST_URL, "/marketing/user_action_sets/add?version=v1.0"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
USER_ACTION_SETS_GET(WX_API_BASE_URL, "/marketing/user_action_sets/get"),
|
USER_ACTION_SETS_GET(API_DEFAULT_HOST_URL, "/marketing/user_action_sets/get"),
|
||||||
/**
|
/**
|
||||||
* add.
|
* add.
|
||||||
*/
|
*/
|
||||||
USER_ACTIONS_ADD(WX_API_BASE_URL, "/marketing/user_actions/add?version=v1.0"),
|
USER_ACTIONS_ADD(API_DEFAULT_HOST_URL, "/marketing/user_actions/add?version=v1.0"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
WECHAT_AD_LEADS_GET(WX_API_BASE_URL, "/marketing/wechat_ad_leads/get");
|
WECHAT_AD_LEADS_GET(API_DEFAULT_HOST_URL, "/marketing/wechat_ad_leads/get");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,38 +169,38 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* get_current_selfmenu_info.
|
* get_current_selfmenu_info.
|
||||||
*/
|
*/
|
||||||
GET_CURRENT_SELFMENU_INFO(WX_API_BASE_URL, "/cgi-bin/get_current_selfmenu_info"),
|
GET_CURRENT_SELFMENU_INFO(API_DEFAULT_HOST_URL, "/cgi-bin/get_current_selfmenu_info"),
|
||||||
/**
|
/**
|
||||||
* trymatch.
|
* trymatch.
|
||||||
*/
|
*/
|
||||||
MENU_TRYMATCH(WX_API_BASE_URL, "/cgi-bin/menu/trymatch"),
|
MENU_TRYMATCH(API_DEFAULT_HOST_URL, "/cgi-bin/menu/trymatch"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
MENU_GET(WX_API_BASE_URL, "/cgi-bin/menu/get"),
|
MENU_GET(API_DEFAULT_HOST_URL, "/cgi-bin/menu/get"),
|
||||||
/**
|
/**
|
||||||
* delconditional.
|
* delconditional.
|
||||||
*/
|
*/
|
||||||
MENU_DELCONDITIONAL(WX_API_BASE_URL, "/cgi-bin/menu/delconditional"),
|
MENU_DELCONDITIONAL(API_DEFAULT_HOST_URL, "/cgi-bin/menu/delconditional"),
|
||||||
/**
|
/**
|
||||||
* delete.
|
* delete.
|
||||||
*/
|
*/
|
||||||
MENU_DELETE(WX_API_BASE_URL, "/cgi-bin/menu/delete"),
|
MENU_DELETE(API_DEFAULT_HOST_URL, "/cgi-bin/menu/delete"),
|
||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
MENU_CREATE(WX_API_BASE_URL, "/cgi-bin/menu/create"),
|
MENU_CREATE(API_DEFAULT_HOST_URL, "/cgi-bin/menu/create"),
|
||||||
/**
|
/**
|
||||||
* addconditional.
|
* addconditional.
|
||||||
*/
|
*/
|
||||||
MENU_ADDCONDITIONAL(WX_API_BASE_URL, "/cgi-bin/menu/addconditional");
|
MENU_ADDCONDITIONAL(API_DEFAULT_HOST_URL, "/cgi-bin/menu/addconditional");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,22 +210,22 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
QRCODE_CREATE(WX_API_BASE_URL, "/cgi-bin/qrcode/create"),
|
QRCODE_CREATE(API_DEFAULT_HOST_URL, "/cgi-bin/qrcode/create"),
|
||||||
/**
|
/**
|
||||||
* showqrcode.
|
* showqrcode.
|
||||||
*/
|
*/
|
||||||
SHOW_QRCODE(WX_MP_BASE_URL, "/cgi-bin/showqrcode"),
|
SHOW_QRCODE(MP_DEFAULT_HOST_URL, "/cgi-bin/showqrcode"),
|
||||||
/**
|
/**
|
||||||
* showqrcode.
|
* showqrcode.
|
||||||
*/
|
*/
|
||||||
SHOW_QRCODE_WITH_TICKET(WX_MP_BASE_URL, "/cgi-bin/showqrcode?ticket=%s");
|
SHOW_QRCODE_WITH_TICKET(MP_DEFAULT_HOST_URL, "/cgi-bin/showqrcode?ticket=%s");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,27 +234,26 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* getshakeinfo.
|
* getshakeinfo.
|
||||||
*/
|
*/
|
||||||
SHAKEAROUND_USER_GETSHAKEINFO(WX_API_BASE_URL, "/shakearound/user/getshakeinfo"),
|
SHAKEAROUND_USER_GETSHAKEINFO(API_DEFAULT_HOST_URL, "/shakearound/user/getshakeinfo"),
|
||||||
/**
|
/**
|
||||||
* add.
|
* add.
|
||||||
*/
|
*/
|
||||||
SHAKEAROUND_PAGE_ADD(WX_API_BASE_URL, "/shakearound/page/add"),
|
SHAKEAROUND_PAGE_ADD(API_DEFAULT_HOST_URL, "/shakearound/page/add"),
|
||||||
/**
|
/**
|
||||||
* bindpage.
|
* bindpage.
|
||||||
*/
|
*/
|
||||||
SHAKEAROUND_DEVICE_BINDPAGE(WX_API_BASE_URL, "/shakearound/device/bindpage"),
|
SHAKEAROUND_DEVICE_BINDPAGE(API_DEFAULT_HOST_URL, "/shakearound/device/bindpage"),
|
||||||
/**
|
/**
|
||||||
* search.
|
* search.
|
||||||
*/
|
*/
|
||||||
SHAKEAROUND_RELATION_SEARCH(WX_API_BASE_URL, "/shakearound/relation/search");
|
SHAKEAROUND_RELATION_SEARCH(API_DEFAULT_HOST_URL, "/shakearound/relation/search");
|
||||||
|
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,18 +262,18 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* subscribemsg.
|
* subscribemsg.
|
||||||
*/
|
*/
|
||||||
SUBSCRIBE_MESSAGE_AUTHORIZE_URL(WX_MP_BASE_URL, "/mp/subscribemsg?action=get_confirm&appid=%s&scene=%d&template_id=%s&redirect_url=%s&reserved=%s#wechat_redirect"),
|
SUBSCRIBE_MESSAGE_AUTHORIZE_URL(MP_DEFAULT_HOST_URL, "/mp/subscribemsg?action=get_confirm&appid=%s&scene=%d&template_id=%s&redirect_url=%s&reserved=%s#wechat_redirect"),
|
||||||
/**
|
/**
|
||||||
* subscribe.
|
* subscribe.
|
||||||
*/
|
*/
|
||||||
SEND_MESSAGE_URL(WX_API_BASE_URL, "/cgi-bin/message/template/subscribe");
|
SEND_MESSAGE_URL(API_DEFAULT_HOST_URL, "/cgi-bin/message/template/subscribe");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,34 +282,34 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* send.
|
* send.
|
||||||
*/
|
*/
|
||||||
MESSAGE_TEMPLATE_SEND(WX_API_BASE_URL, "/cgi-bin/message/template/send"),
|
MESSAGE_TEMPLATE_SEND(API_DEFAULT_HOST_URL, "/cgi-bin/message/template/send"),
|
||||||
/**
|
/**
|
||||||
* api_set_industry.
|
* api_set_industry.
|
||||||
*/
|
*/
|
||||||
TEMPLATE_API_SET_INDUSTRY(WX_API_BASE_URL, "/cgi-bin/template/api_set_industry"),
|
TEMPLATE_API_SET_INDUSTRY(API_DEFAULT_HOST_URL, "/cgi-bin/template/api_set_industry"),
|
||||||
/**
|
/**
|
||||||
* get_industry.
|
* get_industry.
|
||||||
*/
|
*/
|
||||||
TEMPLATE_GET_INDUSTRY(WX_API_BASE_URL, "/cgi-bin/template/get_industry"),
|
TEMPLATE_GET_INDUSTRY(API_DEFAULT_HOST_URL, "/cgi-bin/template/get_industry"),
|
||||||
/**
|
/**
|
||||||
* api_add_template.
|
* api_add_template.
|
||||||
*/
|
*/
|
||||||
TEMPLATE_API_ADD_TEMPLATE(WX_API_BASE_URL, "/cgi-bin/template/api_add_template"),
|
TEMPLATE_API_ADD_TEMPLATE(API_DEFAULT_HOST_URL, "/cgi-bin/template/api_add_template"),
|
||||||
/**
|
/**
|
||||||
* get_all_private_template.
|
* get_all_private_template.
|
||||||
*/
|
*/
|
||||||
TEMPLATE_GET_ALL_PRIVATE_TEMPLATE(WX_API_BASE_URL, "/cgi-bin/template/get_all_private_template"),
|
TEMPLATE_GET_ALL_PRIVATE_TEMPLATE(API_DEFAULT_HOST_URL, "/cgi-bin/template/get_all_private_template"),
|
||||||
/**
|
/**
|
||||||
* del_private_template.
|
* del_private_template.
|
||||||
*/
|
*/
|
||||||
TEMPLATE_DEL_PRIVATE_TEMPLATE(WX_API_BASE_URL, "/cgi-bin/template/del_private_template");
|
TEMPLATE_DEL_PRIVATE_TEMPLATE(API_DEFAULT_HOST_URL, "/cgi-bin/template/del_private_template");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,22 +318,22 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* getblacklist.
|
* getblacklist.
|
||||||
*/
|
*/
|
||||||
GETBLACKLIST(WX_API_BASE_URL, "/cgi-bin/tags/members/getblacklist"),
|
GETBLACKLIST(API_DEFAULT_HOST_URL, "/cgi-bin/tags/members/getblacklist"),
|
||||||
/**
|
/**
|
||||||
* batchblacklist.
|
* batchblacklist.
|
||||||
*/
|
*/
|
||||||
BATCHBLACKLIST(WX_API_BASE_URL, "/cgi-bin/tags/members/batchblacklist"),
|
BATCHBLACKLIST(API_DEFAULT_HOST_URL, "/cgi-bin/tags/members/batchblacklist"),
|
||||||
/**
|
/**
|
||||||
* batchunblacklist.
|
* batchunblacklist.
|
||||||
*/
|
*/
|
||||||
BATCHUNBLACKLIST(WX_API_BASE_URL, "/cgi-bin/tags/members/batchunblacklist");
|
BATCHUNBLACKLIST(API_DEFAULT_HOST_URL, "/cgi-bin/tags/members/batchunblacklist");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,42 +342,42 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
TAGS_CREATE(WX_API_BASE_URL, "/cgi-bin/tags/create"),
|
TAGS_CREATE(API_DEFAULT_HOST_URL, "/cgi-bin/tags/create"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
TAGS_GET(WX_API_BASE_URL, "/cgi-bin/tags/get"),
|
TAGS_GET(API_DEFAULT_HOST_URL, "/cgi-bin/tags/get"),
|
||||||
/**
|
/**
|
||||||
* update.
|
* update.
|
||||||
*/
|
*/
|
||||||
TAGS_UPDATE(WX_API_BASE_URL, "/cgi-bin/tags/update"),
|
TAGS_UPDATE(API_DEFAULT_HOST_URL, "/cgi-bin/tags/update"),
|
||||||
/**
|
/**
|
||||||
* delete.
|
* delete.
|
||||||
*/
|
*/
|
||||||
TAGS_DELETE(WX_API_BASE_URL, "/cgi-bin/tags/delete"),
|
TAGS_DELETE(API_DEFAULT_HOST_URL, "/cgi-bin/tags/delete"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
TAG_GET(WX_API_BASE_URL, "/cgi-bin/user/tag/get"),
|
TAG_GET(API_DEFAULT_HOST_URL, "/cgi-bin/user/tag/get"),
|
||||||
/**
|
/**
|
||||||
* batchtagging.
|
* batchtagging.
|
||||||
*/
|
*/
|
||||||
TAGS_MEMBERS_BATCHTAGGING(WX_API_BASE_URL, "/cgi-bin/tags/members/batchtagging"),
|
TAGS_MEMBERS_BATCHTAGGING(API_DEFAULT_HOST_URL, "/cgi-bin/tags/members/batchtagging"),
|
||||||
/**
|
/**
|
||||||
* batchuntagging.
|
* batchuntagging.
|
||||||
*/
|
*/
|
||||||
TAGS_MEMBERS_BATCHUNTAGGING(WX_API_BASE_URL, "/cgi-bin/tags/members/batchuntagging"),
|
TAGS_MEMBERS_BATCHUNTAGGING(API_DEFAULT_HOST_URL, "/cgi-bin/tags/members/batchuntagging"),
|
||||||
/**
|
/**
|
||||||
* getidlist.
|
* getidlist.
|
||||||
*/
|
*/
|
||||||
TAGS_GETIDLIST(WX_API_BASE_URL, "/cgi-bin/tags/getidlist");
|
TAGS_GETIDLIST(API_DEFAULT_HOST_URL, "/cgi-bin/tags/getidlist");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -386,14 +386,14 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* list.
|
* list.
|
||||||
*/
|
*/
|
||||||
BIZWIFI_SHOP_LIST(WX_API_BASE_URL, "/bizwifi/shop/list");
|
BIZWIFI_SHOP_LIST(API_DEFAULT_HOST_URL, "/bizwifi/shop/list");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,22 +402,22 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* translatecontent.
|
* translatecontent.
|
||||||
*/
|
*/
|
||||||
TRANSLATE_URL(WX_API_BASE_URL, "/cgi-bin/media/voice/translatecontent?lfrom=%s<o=%s"),
|
TRANSLATE_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/voice/translatecontent?lfrom=%s<o=%s"),
|
||||||
/**
|
/**
|
||||||
* addvoicetorecofortext.
|
* addvoicetorecofortext.
|
||||||
*/
|
*/
|
||||||
VOICE_UPLOAD_URL(WX_API_BASE_URL, "/cgi-bin/media/voice/addvoicetorecofortext?format=%s&voice_id=%s&lang=%s"),
|
VOICE_UPLOAD_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/voice/addvoicetorecofortext?format=%s&voice_id=%s&lang=%s"),
|
||||||
/**
|
/**
|
||||||
* queryrecoresultfortext.
|
* queryrecoresultfortext.
|
||||||
*/
|
*/
|
||||||
VOICE_QUERY_RESULT_URL(WX_API_BASE_URL, "/cgi-bin/media/voice/queryrecoresultfortext");
|
VOICE_QUERY_RESULT_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/voice/queryrecoresultfortext");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -426,58 +426,58 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
CARD_CREATE(WX_API_BASE_URL, "/card/create"),
|
CARD_CREATE(API_DEFAULT_HOST_URL, "/card/create"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
CARD_GET(WX_API_BASE_URL, "/card/get"),
|
CARD_GET(API_DEFAULT_HOST_URL, "/card/get"),
|
||||||
/**
|
/**
|
||||||
* wx_card.
|
* wx_card.
|
||||||
*/
|
*/
|
||||||
CARD_GET_TICKET(WX_API_BASE_URL, "/cgi-bin/ticket/getticket?type=wx_card"),
|
CARD_GET_TICKET(API_DEFAULT_HOST_URL, "/cgi-bin/ticket/getticket?type=wx_card"),
|
||||||
/**
|
/**
|
||||||
* decrypt.
|
* decrypt.
|
||||||
*/
|
*/
|
||||||
CARD_CODE_DECRYPT(WX_API_BASE_URL, "/card/code/decrypt"),
|
CARD_CODE_DECRYPT(API_DEFAULT_HOST_URL, "/card/code/decrypt"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
CARD_CODE_GET(WX_API_BASE_URL, "/card/code/get"),
|
CARD_CODE_GET(API_DEFAULT_HOST_URL, "/card/code/get"),
|
||||||
/**
|
/**
|
||||||
* consume.
|
* consume.
|
||||||
*/
|
*/
|
||||||
CARD_CODE_CONSUME(WX_API_BASE_URL, "/card/code/consume"),
|
CARD_CODE_CONSUME(API_DEFAULT_HOST_URL, "/card/code/consume"),
|
||||||
/**
|
/**
|
||||||
* mark.
|
* mark.
|
||||||
*/
|
*/
|
||||||
CARD_CODE_MARK(WX_API_BASE_URL, "/card/code/mark"),
|
CARD_CODE_MARK(API_DEFAULT_HOST_URL, "/card/code/mark"),
|
||||||
/**
|
/**
|
||||||
* set.
|
* set.
|
||||||
*/
|
*/
|
||||||
CARD_TEST_WHITELIST(WX_API_BASE_URL, "/card/testwhitelist/set"),
|
CARD_TEST_WHITELIST(API_DEFAULT_HOST_URL, "/card/testwhitelist/set"),
|
||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
CARD_QRCODE_CREATE(WX_API_BASE_URL, "/card/qrcode/create"),
|
CARD_QRCODE_CREATE(API_DEFAULT_HOST_URL, "/card/qrcode/create"),
|
||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
CARD_LANDING_PAGE_CREATE(WX_API_BASE_URL, "/card/landingpage/create"),
|
CARD_LANDING_PAGE_CREATE(API_DEFAULT_HOST_URL, "/card/landingpage/create"),
|
||||||
/**
|
/**
|
||||||
* 将用户的卡券设置为失效状态.
|
* 将用户的卡券设置为失效状态.
|
||||||
*/
|
*/
|
||||||
CARD_CODE_UNAVAILABLE(WX_API_BASE_URL, "/card/code/unavailable"),
|
CARD_CODE_UNAVAILABLE(API_DEFAULT_HOST_URL, "/card/code/unavailable"),
|
||||||
/**
|
/**
|
||||||
* 卡券删除.
|
* 卡券删除.
|
||||||
*/
|
*/
|
||||||
CARD_DELETE(WX_API_BASE_URL, "/card/delete");
|
CARD_DELETE(API_DEFAULT_HOST_URL, "/card/delete");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,78 +486,78 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* getusersummary.
|
* getusersummary.
|
||||||
*/
|
*/
|
||||||
GET_USER_SUMMARY(WX_API_BASE_URL, "/datacube/getusersummary"),
|
GET_USER_SUMMARY(API_DEFAULT_HOST_URL, "/datacube/getusersummary"),
|
||||||
/**
|
/**
|
||||||
* getusercumulate.
|
* getusercumulate.
|
||||||
*/
|
*/
|
||||||
GET_USER_CUMULATE(WX_API_BASE_URL, "/datacube/getusercumulate"),
|
GET_USER_CUMULATE(API_DEFAULT_HOST_URL, "/datacube/getusercumulate"),
|
||||||
/**
|
/**
|
||||||
* getarticlesummary.
|
* getarticlesummary.
|
||||||
*/
|
*/
|
||||||
GET_ARTICLE_SUMMARY(WX_API_BASE_URL, "/datacube/getarticlesummary"),
|
GET_ARTICLE_SUMMARY(API_DEFAULT_HOST_URL, "/datacube/getarticlesummary"),
|
||||||
/**
|
/**
|
||||||
* getarticletotal.
|
* getarticletotal.
|
||||||
*/
|
*/
|
||||||
GET_ARTICLE_TOTAL(WX_API_BASE_URL, "/datacube/getarticletotal"),
|
GET_ARTICLE_TOTAL(API_DEFAULT_HOST_URL, "/datacube/getarticletotal"),
|
||||||
/**
|
/**
|
||||||
* getuserread.
|
* getuserread.
|
||||||
*/
|
*/
|
||||||
GET_USER_READ(WX_API_BASE_URL, "/datacube/getuserread"),
|
GET_USER_READ(API_DEFAULT_HOST_URL, "/datacube/getuserread"),
|
||||||
/**
|
/**
|
||||||
* getuserreadhour.
|
* getuserreadhour.
|
||||||
*/
|
*/
|
||||||
GET_USER_READ_HOUR(WX_API_BASE_URL, "/datacube/getuserreadhour"),
|
GET_USER_READ_HOUR(API_DEFAULT_HOST_URL, "/datacube/getuserreadhour"),
|
||||||
/**
|
/**
|
||||||
* getusershare.
|
* getusershare.
|
||||||
*/
|
*/
|
||||||
GET_USER_SHARE(WX_API_BASE_URL, "/datacube/getusershare"),
|
GET_USER_SHARE(API_DEFAULT_HOST_URL, "/datacube/getusershare"),
|
||||||
/**
|
/**
|
||||||
* getusersharehour.
|
* getusersharehour.
|
||||||
*/
|
*/
|
||||||
GET_USER_SHARE_HOUR(WX_API_BASE_URL, "/datacube/getusersharehour"),
|
GET_USER_SHARE_HOUR(API_DEFAULT_HOST_URL, "/datacube/getusersharehour"),
|
||||||
/**
|
/**
|
||||||
* getupstreammsg.
|
* getupstreammsg.
|
||||||
*/
|
*/
|
||||||
GET_UPSTREAM_MSG(WX_API_BASE_URL, "/datacube/getupstreammsg"),
|
GET_UPSTREAM_MSG(API_DEFAULT_HOST_URL, "/datacube/getupstreammsg"),
|
||||||
/**
|
/**
|
||||||
* getupstreammsghour.
|
* getupstreammsghour.
|
||||||
*/
|
*/
|
||||||
GET_UPSTREAM_MSG_HOUR(WX_API_BASE_URL, "/datacube/getupstreammsghour"),
|
GET_UPSTREAM_MSG_HOUR(API_DEFAULT_HOST_URL, "/datacube/getupstreammsghour"),
|
||||||
/**
|
/**
|
||||||
* getupstreammsgweek.
|
* getupstreammsgweek.
|
||||||
*/
|
*/
|
||||||
GET_UPSTREAM_MSG_WEEK(WX_API_BASE_URL, "/datacube/getupstreammsgweek"),
|
GET_UPSTREAM_MSG_WEEK(API_DEFAULT_HOST_URL, "/datacube/getupstreammsgweek"),
|
||||||
/**
|
/**
|
||||||
* getupstreammsgmonth.
|
* getupstreammsgmonth.
|
||||||
*/
|
*/
|
||||||
GET_UPSTREAM_MSG_MONTH(WX_API_BASE_URL, "/datacube/getupstreammsgmonth"),
|
GET_UPSTREAM_MSG_MONTH(API_DEFAULT_HOST_URL, "/datacube/getupstreammsgmonth"),
|
||||||
/**
|
/**
|
||||||
* getupstreammsgdist.
|
* getupstreammsgdist.
|
||||||
*/
|
*/
|
||||||
GET_UPSTREAM_MSG_DIST(WX_API_BASE_URL, "/datacube/getupstreammsgdist"),
|
GET_UPSTREAM_MSG_DIST(API_DEFAULT_HOST_URL, "/datacube/getupstreammsgdist"),
|
||||||
/**
|
/**
|
||||||
* getupstreammsgdistweek.
|
* getupstreammsgdistweek.
|
||||||
*/
|
*/
|
||||||
GET_UPSTREAM_MSG_DIST_WEEK(WX_API_BASE_URL, "/datacube/getupstreammsgdistweek"),
|
GET_UPSTREAM_MSG_DIST_WEEK(API_DEFAULT_HOST_URL, "/datacube/getupstreammsgdistweek"),
|
||||||
/**
|
/**
|
||||||
* getupstreammsgdistmonth.
|
* getupstreammsgdistmonth.
|
||||||
*/
|
*/
|
||||||
GET_UPSTREAM_MSG_DIST_MONTH(WX_API_BASE_URL, "/datacube/getupstreammsgdistmonth"),
|
GET_UPSTREAM_MSG_DIST_MONTH(API_DEFAULT_HOST_URL, "/datacube/getupstreammsgdistmonth"),
|
||||||
/**
|
/**
|
||||||
* getinterfacesummary.
|
* getinterfacesummary.
|
||||||
*/
|
*/
|
||||||
GET_INTERFACE_SUMMARY(WX_API_BASE_URL, "/datacube/getinterfacesummary"),
|
GET_INTERFACE_SUMMARY(API_DEFAULT_HOST_URL, "/datacube/getinterfacesummary"),
|
||||||
/**
|
/**
|
||||||
* getinterfacesummaryhour.
|
* getinterfacesummaryhour.
|
||||||
*/
|
*/
|
||||||
GET_INTERFACE_SUMMARY_HOUR(WX_API_BASE_URL, "/datacube/getinterfacesummaryhour");
|
GET_INTERFACE_SUMMARY_HOUR(API_DEFAULT_HOST_URL, "/datacube/getinterfacesummaryhour");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -566,70 +566,70 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* send.
|
* send.
|
||||||
*/
|
*/
|
||||||
MESSAGE_CUSTOM_SEND(WX_API_BASE_URL, "/cgi-bin/message/custom/send"),
|
MESSAGE_CUSTOM_SEND(API_DEFAULT_HOST_URL, "/cgi-bin/message/custom/send"),
|
||||||
/**
|
/**
|
||||||
* getkflist.
|
* getkflist.
|
||||||
*/
|
*/
|
||||||
GET_KF_LIST(WX_API_BASE_URL, "/cgi-bin/customservice/getkflist"),
|
GET_KF_LIST(API_DEFAULT_HOST_URL, "/cgi-bin/customservice/getkflist"),
|
||||||
/**
|
/**
|
||||||
* getonlinekflist.
|
* getonlinekflist.
|
||||||
*/
|
*/
|
||||||
GET_ONLINE_KF_LIST(WX_API_BASE_URL, "/cgi-bin/customservice/getonlinekflist"),
|
GET_ONLINE_KF_LIST(API_DEFAULT_HOST_URL, "/cgi-bin/customservice/getonlinekflist"),
|
||||||
/**
|
/**
|
||||||
* add.
|
* add.
|
||||||
*/
|
*/
|
||||||
KFACCOUNT_ADD(WX_API_BASE_URL, "/customservice/kfaccount/add"),
|
KFACCOUNT_ADD(API_DEFAULT_HOST_URL, "/customservice/kfaccount/add"),
|
||||||
/**
|
/**
|
||||||
* update.
|
* update.
|
||||||
*/
|
*/
|
||||||
KFACCOUNT_UPDATE(WX_API_BASE_URL, "/customservice/kfaccount/update"),
|
KFACCOUNT_UPDATE(API_DEFAULT_HOST_URL, "/customservice/kfaccount/update"),
|
||||||
/**
|
/**
|
||||||
* inviteworker.
|
* inviteworker.
|
||||||
*/
|
*/
|
||||||
KFACCOUNT_INVITE_WORKER(WX_API_BASE_URL, "/customservice/kfaccount/inviteworker"),
|
KFACCOUNT_INVITE_WORKER(API_DEFAULT_HOST_URL, "/customservice/kfaccount/inviteworker"),
|
||||||
/**
|
/**
|
||||||
* uploadheadimg.
|
* uploadheadimg.
|
||||||
*/
|
*/
|
||||||
KFACCOUNT_UPLOAD_HEAD_IMG(WX_API_BASE_URL, "/customservice/kfaccount/uploadheadimg?kf_account=%s"),
|
KFACCOUNT_UPLOAD_HEAD_IMG(API_DEFAULT_HOST_URL, "/customservice/kfaccount/uploadheadimg?kf_account=%s"),
|
||||||
/**
|
/**
|
||||||
* del kfaccount.
|
* del kfaccount.
|
||||||
*/
|
*/
|
||||||
KFACCOUNT_DEL(WX_API_BASE_URL, "/customservice/kfaccount/del?kf_account=%s"),
|
KFACCOUNT_DEL(API_DEFAULT_HOST_URL, "/customservice/kfaccount/del?kf_account=%s"),
|
||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
KFSESSION_CREATE(WX_API_BASE_URL, "/customservice/kfsession/create"),
|
KFSESSION_CREATE(API_DEFAULT_HOST_URL, "/customservice/kfsession/create"),
|
||||||
/**
|
/**
|
||||||
* close.
|
* close.
|
||||||
*/
|
*/
|
||||||
KFSESSION_CLOSE(WX_API_BASE_URL, "/customservice/kfsession/close"),
|
KFSESSION_CLOSE(API_DEFAULT_HOST_URL, "/customservice/kfsession/close"),
|
||||||
/**
|
/**
|
||||||
* getsession.
|
* getsession.
|
||||||
*/
|
*/
|
||||||
KFSESSION_GET_SESSION(WX_API_BASE_URL, "/customservice/kfsession/getsession?openid=%s"),
|
KFSESSION_GET_SESSION(API_DEFAULT_HOST_URL, "/customservice/kfsession/getsession?openid=%s"),
|
||||||
/**
|
/**
|
||||||
* getsessionlist.
|
* getsessionlist.
|
||||||
*/
|
*/
|
||||||
KFSESSION_GET_SESSION_LIST(WX_API_BASE_URL, "/customservice/kfsession/getsessionlist?kf_account=%s"),
|
KFSESSION_GET_SESSION_LIST(API_DEFAULT_HOST_URL, "/customservice/kfsession/getsessionlist?kf_account=%s"),
|
||||||
/**
|
/**
|
||||||
* getwaitcase.
|
* getwaitcase.
|
||||||
*/
|
*/
|
||||||
KFSESSION_GET_WAIT_CASE(WX_API_BASE_URL, "/customservice/kfsession/getwaitcase"),
|
KFSESSION_GET_WAIT_CASE(API_DEFAULT_HOST_URL, "/customservice/kfsession/getwaitcase"),
|
||||||
/**
|
/**
|
||||||
* getmsglist.
|
* getmsglist.
|
||||||
*/
|
*/
|
||||||
MSG_RECORD_LIST(WX_API_BASE_URL, "/customservice/msgrecord/getmsglist"),
|
MSG_RECORD_LIST(API_DEFAULT_HOST_URL, "/customservice/msgrecord/getmsglist"),
|
||||||
/**
|
/**
|
||||||
* typing.
|
* typing.
|
||||||
*/
|
*/
|
||||||
CUSTOM_TYPING(WX_API_BASE_URL, "/cgi-bin/message/custom/typing");
|
CUSTOM_TYPING(API_DEFAULT_HOST_URL, "/cgi-bin/message/custom/typing");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -638,34 +638,34 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* 上传群发用的图文消息.
|
* 上传群发用的图文消息.
|
||||||
*/
|
*/
|
||||||
MEDIA_UPLOAD_NEWS_URL(WX_API_BASE_URL, "/cgi-bin/media/uploadnews"),
|
MEDIA_UPLOAD_NEWS_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/uploadnews"),
|
||||||
/**
|
/**
|
||||||
* 上传群发用的视频.
|
* 上传群发用的视频.
|
||||||
*/
|
*/
|
||||||
MEDIA_UPLOAD_VIDEO_URL(WX_API_BASE_URL, "/cgi-bin/media/uploadvideo"),
|
MEDIA_UPLOAD_VIDEO_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/uploadvideo"),
|
||||||
/**
|
/**
|
||||||
* 分组群发消息.
|
* 分组群发消息.
|
||||||
*/
|
*/
|
||||||
MESSAGE_MASS_SENDALL_URL(WX_API_BASE_URL, "/cgi-bin/message/mass/sendall"),
|
MESSAGE_MASS_SENDALL_URL(API_DEFAULT_HOST_URL, "/cgi-bin/message/mass/sendall"),
|
||||||
/**
|
/**
|
||||||
* 按openId列表群发消息.
|
* 按openId列表群发消息.
|
||||||
*/
|
*/
|
||||||
MESSAGE_MASS_SEND_URL(WX_API_BASE_URL, "/cgi-bin/message/mass/send"),
|
MESSAGE_MASS_SEND_URL(API_DEFAULT_HOST_URL, "/cgi-bin/message/mass/send"),
|
||||||
/**
|
/**
|
||||||
* 群发消息预览接口.
|
* 群发消息预览接口.
|
||||||
*/
|
*/
|
||||||
MESSAGE_MASS_PREVIEW_URL(WX_API_BASE_URL, "/cgi-bin/message/mass/preview"),
|
MESSAGE_MASS_PREVIEW_URL(API_DEFAULT_HOST_URL, "/cgi-bin/message/mass/preview"),
|
||||||
/**
|
/**
|
||||||
* 删除群发接口.
|
* 删除群发接口.
|
||||||
*/
|
*/
|
||||||
MESSAGE_MASS_DELETE_URL(WX_API_BASE_URL, "/cgi-bin/message/mass/delete");
|
MESSAGE_MASS_DELETE_URL(API_DEFAULT_HOST_URL, "/cgi-bin/message/mass/delete");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -674,50 +674,50 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
MEDIA_GET_URL(WX_API_BASE_URL, "/cgi-bin/media/get"),
|
MEDIA_GET_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/get"),
|
||||||
/**
|
/**
|
||||||
* upload.
|
* upload.
|
||||||
*/
|
*/
|
||||||
MEDIA_UPLOAD_URL(WX_API_BASE_URL, "/cgi-bin/media/upload?type=%s"),
|
MEDIA_UPLOAD_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/upload?type=%s"),
|
||||||
/**
|
/**
|
||||||
* uploadimg.
|
* uploadimg.
|
||||||
*/
|
*/
|
||||||
IMG_UPLOAD_URL(WX_API_BASE_URL, "/cgi-bin/media/uploadimg"),
|
IMG_UPLOAD_URL(API_DEFAULT_HOST_URL, "/cgi-bin/media/uploadimg"),
|
||||||
/**
|
/**
|
||||||
* add_material.
|
* add_material.
|
||||||
*/
|
*/
|
||||||
MATERIAL_ADD_URL(WX_API_BASE_URL, "/cgi-bin/material/add_material?type=%s"),
|
MATERIAL_ADD_URL(API_DEFAULT_HOST_URL, "/cgi-bin/material/add_material?type=%s"),
|
||||||
/**
|
/**
|
||||||
* add_news.
|
* add_news.
|
||||||
*/
|
*/
|
||||||
NEWS_ADD_URL(WX_API_BASE_URL, "/cgi-bin/material/add_news"),
|
NEWS_ADD_URL(API_DEFAULT_HOST_URL, "/cgi-bin/material/add_news"),
|
||||||
/**
|
/**
|
||||||
* get_material.
|
* get_material.
|
||||||
*/
|
*/
|
||||||
MATERIAL_GET_URL(WX_API_BASE_URL, "/cgi-bin/material/get_material"),
|
MATERIAL_GET_URL(API_DEFAULT_HOST_URL, "/cgi-bin/material/get_material"),
|
||||||
/**
|
/**
|
||||||
* update_news.
|
* update_news.
|
||||||
*/
|
*/
|
||||||
NEWS_UPDATE_URL(WX_API_BASE_URL, "/cgi-bin/material/update_news"),
|
NEWS_UPDATE_URL(API_DEFAULT_HOST_URL, "/cgi-bin/material/update_news"),
|
||||||
/**
|
/**
|
||||||
* del_material.
|
* del_material.
|
||||||
*/
|
*/
|
||||||
MATERIAL_DEL_URL(WX_API_BASE_URL, "/cgi-bin/material/del_material"),
|
MATERIAL_DEL_URL(API_DEFAULT_HOST_URL, "/cgi-bin/material/del_material"),
|
||||||
/**
|
/**
|
||||||
* get_materialcount.
|
* get_materialcount.
|
||||||
*/
|
*/
|
||||||
MATERIAL_GET_COUNT_URL(WX_API_BASE_URL, "/cgi-bin/material/get_materialcount"),
|
MATERIAL_GET_COUNT_URL(API_DEFAULT_HOST_URL, "/cgi-bin/material/get_materialcount"),
|
||||||
/**
|
/**
|
||||||
* batchget_material.
|
* batchget_material.
|
||||||
*/
|
*/
|
||||||
MATERIAL_BATCHGET_URL(WX_API_BASE_URL, "/cgi-bin/material/batchget_material");
|
MATERIAL_BATCHGET_URL(API_DEFAULT_HOST_URL, "/cgi-bin/material/batchget_material");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -726,43 +726,43 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* create.
|
* create.
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_CREATE(WX_API_BASE_URL, "/card/create"),
|
MEMBER_CARD_CREATE(API_DEFAULT_HOST_URL, "/card/create"),
|
||||||
/**
|
/**
|
||||||
* activate.
|
* activate.
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_ACTIVATE(WX_API_BASE_URL, "/card/membercard/activate"),
|
MEMBER_CARD_ACTIVATE(API_DEFAULT_HOST_URL, "/card/membercard/activate"),
|
||||||
/**
|
/**
|
||||||
* get userinfo.
|
* get userinfo.
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_USER_INFO_GET(WX_API_BASE_URL, "/card/membercard/userinfo/get"),
|
MEMBER_CARD_USER_INFO_GET(API_DEFAULT_HOST_URL, "/card/membercard/userinfo/get"),
|
||||||
/**
|
/**
|
||||||
* updateuser.
|
* updateuser.
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_UPDATE_USER(WX_API_BASE_URL, "/card/membercard/updateuser"),
|
MEMBER_CARD_UPDATE_USER(API_DEFAULT_HOST_URL, "/card/membercard/updateuser"),
|
||||||
/**
|
/**
|
||||||
* 会员卡激活之微信开卡接口(wx_activate=true情况调用).
|
* 会员卡激活之微信开卡接口(wx_activate=true情况调用).
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_ACTIVATE_USER_FORM(WX_API_BASE_URL, "/card/membercard/activateuserform/set"),
|
MEMBER_CARD_ACTIVATE_USER_FORM(API_DEFAULT_HOST_URL, "/card/membercard/activateuserform/set"),
|
||||||
/**
|
/**
|
||||||
* 获取会员卡开卡插件参数.
|
* 获取会员卡开卡插件参数.
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_ACTIVATE_URL(WX_API_BASE_URL, "/card/membercard/activate/geturl"),
|
MEMBER_CARD_ACTIVATE_URL(API_DEFAULT_HOST_URL, "/card/membercard/activate/geturl"),
|
||||||
/**
|
/**
|
||||||
* 会员卡信息更新.
|
* 会员卡信息更新.
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_UPDATE(WX_API_BASE_URL, "/card/update"),
|
MEMBER_CARD_UPDATE(API_DEFAULT_HOST_URL, "/card/update"),
|
||||||
/**
|
/**
|
||||||
* 跳转型会员卡开卡字段.
|
* 跳转型会员卡开卡字段.
|
||||||
* 获取用户提交资料(wx_activate=true情况调用),开发者根据activate_ticket获取到用户填写的信息
|
* 获取用户提交资料(wx_activate=true情况调用),开发者根据activate_ticket获取到用户填写的信息
|
||||||
*/
|
*/
|
||||||
MEMBER_CARD_ACTIVATE_TEMP_INFO(WX_API_BASE_URL, "/card/membercard/activatetempinfo/get");
|
MEMBER_CARD_ACTIVATE_TEMP_INFO(API_DEFAULT_HOST_URL, "/card/membercard/activatetempinfo/get");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -771,34 +771,34 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* getwxcategory.
|
* getwxcategory.
|
||||||
*/
|
*/
|
||||||
POI_GET_WX_CATEGORY_URL(WX_API_BASE_URL, "/cgi-bin/poi/getwxcategory"),
|
POI_GET_WX_CATEGORY_URL(API_DEFAULT_HOST_URL, "/cgi-bin/poi/getwxcategory"),
|
||||||
/**
|
/**
|
||||||
* updatepoi.
|
* updatepoi.
|
||||||
*/
|
*/
|
||||||
POI_UPDATE_URL(WX_API_BASE_URL, "/cgi-bin/poi/updatepoi"),
|
POI_UPDATE_URL(API_DEFAULT_HOST_URL, "/cgi-bin/poi/updatepoi"),
|
||||||
/**
|
/**
|
||||||
* getpoilist.
|
* getpoilist.
|
||||||
*/
|
*/
|
||||||
POI_LIST_URL(WX_API_BASE_URL, "/cgi-bin/poi/getpoilist"),
|
POI_LIST_URL(API_DEFAULT_HOST_URL, "/cgi-bin/poi/getpoilist"),
|
||||||
/**
|
/**
|
||||||
* delpoi.
|
* delpoi.
|
||||||
*/
|
*/
|
||||||
POI_DEL_URL(WX_API_BASE_URL, "/cgi-bin/poi/delpoi"),
|
POI_DEL_URL(API_DEFAULT_HOST_URL, "/cgi-bin/poi/delpoi"),
|
||||||
/**
|
/**
|
||||||
* getpoi.
|
* getpoi.
|
||||||
*/
|
*/
|
||||||
POI_GET_URL(WX_API_BASE_URL, "/cgi-bin/poi/getpoi"),
|
POI_GET_URL(API_DEFAULT_HOST_URL, "/cgi-bin/poi/getpoi"),
|
||||||
/**
|
/**
|
||||||
* addpoi.
|
* addpoi.
|
||||||
*/
|
*/
|
||||||
POI_ADD_URL(WX_API_BASE_URL, "/cgi-bin/poi/addpoi");
|
POI_ADD_URL(API_DEFAULT_HOST_URL, "/cgi-bin/poi/addpoi");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -808,30 +808,30 @@ public interface WxMpApiUrl {
|
|||||||
/**
|
/**
|
||||||
* batchget.
|
* batchget.
|
||||||
*/
|
*/
|
||||||
USER_INFO_BATCH_GET_URL(WX_API_BASE_URL, "/cgi-bin/user/info/batchget"),
|
USER_INFO_BATCH_GET_URL(API_DEFAULT_HOST_URL, "/cgi-bin/user/info/batchget"),
|
||||||
/**
|
/**
|
||||||
* get.
|
* get.
|
||||||
*/
|
*/
|
||||||
USER_GET_URL(WX_API_BASE_URL, "/cgi-bin/user/get"),
|
USER_GET_URL(API_DEFAULT_HOST_URL, "/cgi-bin/user/get"),
|
||||||
/**
|
/**
|
||||||
* info.
|
* info.
|
||||||
*/
|
*/
|
||||||
USER_INFO_URL(WX_API_BASE_URL, "/cgi-bin/user/info"),
|
USER_INFO_URL(API_DEFAULT_HOST_URL, "/cgi-bin/user/info"),
|
||||||
/**
|
/**
|
||||||
* updateremark.
|
* updateremark.
|
||||||
*/
|
*/
|
||||||
USER_INFO_UPDATE_REMARK_URL(WX_API_BASE_URL, "/cgi-bin/user/info/updateremark"),
|
USER_INFO_UPDATE_REMARK_URL(API_DEFAULT_HOST_URL, "/cgi-bin/user/info/updateremark"),
|
||||||
/**
|
/**
|
||||||
* changeopenid.
|
* changeopenid.
|
||||||
*/
|
*/
|
||||||
USER_CHANGE_OPENID_URL(WX_API_BASE_URL, "/cgi-bin/changeopenid");
|
USER_CHANGE_OPENID_URL(API_DEFAULT_HOST_URL, "/cgi-bin/changeopenid");
|
||||||
|
|
||||||
private String prefix;
|
private String prefix;
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() {
|
public String getUrl(WxMpConfigStorage config) {
|
||||||
return this.prefix + this.path;
|
return buildUrl(config.getHostConfig(), prefix, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,9 @@ import me.chanjar.weixin.mp.bean.subscribe.WxMpSubscribeMessage;
|
|||||||
import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
|
import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
|
||||||
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
|
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author someone
|
||||||
|
*/
|
||||||
public class WxMpGsonBuilder {
|
public class WxMpGsonBuilder {
|
||||||
|
|
||||||
private static final GsonBuilder INSTANCE = new GsonBuilder();
|
private static final GsonBuilder INSTANCE = new GsonBuilder();
|
||||||
|
@ -11,6 +11,7 @@ import cn.binarywang.wx.miniapp.config.WxMaConfig;
|
|||||||
import me.chanjar.weixin.common.bean.WxAccessToken;
|
import me.chanjar.weixin.common.bean.WxAccessToken;
|
||||||
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||||
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
|
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
|
||||||
|
import me.chanjar.weixin.mp.bean.WxMpHostConfig;
|
||||||
import me.chanjar.weixin.mp.enums.TicketType;
|
import me.chanjar.weixin.mp.enums.TicketType;
|
||||||
import me.chanjar.weixin.open.api.WxOpenConfigStorage;
|
import me.chanjar.weixin.open.api.WxOpenConfigStorage;
|
||||||
import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken;
|
import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken;
|
||||||
@ -543,10 +544,14 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
|
|||||||
return wxOpenConfigStorage.getApacheHttpClientBuilder();
|
return wxOpenConfigStorage.getApacheHttpClientBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean autoRefreshToken() {
|
public boolean autoRefreshToken() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxMpHostConfig getHostConfig() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import me.chanjar.weixin.open.api.WxOpenComponentService;
|
|||||||
/**
|
/**
|
||||||
* @author <a href="https://github.com/007gzs">007</a>
|
* @author <a href="https://github.com/007gzs">007</a>
|
||||||
*/
|
*/
|
||||||
/* package */ class WxOpenMpServiceImpl extends WxMpServiceImpl {
|
/* package(无需对外暴露) */ class WxOpenMpServiceImpl extends WxMpServiceImpl {
|
||||||
private WxOpenComponentService wxOpenComponentService;
|
private WxOpenComponentService wxOpenComponentService;
|
||||||
private WxMpConfigStorage wxMpConfigStorage;
|
private WxMpConfigStorage wxMpConfigStorage;
|
||||||
private String appId;
|
private String appId;
|
||||||
|
Loading…
Reference in New Issue
Block a user