|
@@ -10,76 +10,79 @@ import me.chanjar.weixin.mp.bean.result.WxMpCurrentAutoReplyInfo;
|
|
|
import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
|
|
|
import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult;
|
|
|
import me.chanjar.weixin.mp.bean.result.WxMpUser;
|
|
|
+import me.chanjar.weixin.mp.enums.TicketType;
|
|
|
|
|
|
/**
|
|
|
- * 微信API的Service
|
|
|
+ * 微信公众号API的Service.
|
|
|
+ *
|
|
|
+ * @author chanjarster
|
|
|
*/
|
|
|
public interface WxMpService {
|
|
|
/**
|
|
|
- * 获取access_token
|
|
|
+ * 获取access_token.
|
|
|
*/
|
|
|
String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";
|
|
|
/**
|
|
|
- * 获得jsapi_ticket
|
|
|
+ * 获得各种类型的ticket.
|
|
|
*/
|
|
|
- String GET_JSAPI_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi";
|
|
|
+ String GET_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=";
|
|
|
/**
|
|
|
- * 长链接转短链接接口
|
|
|
+ * 长链接转短链接接口.
|
|
|
*/
|
|
|
String SHORTURL_API_URL = "https://api.weixin.qq.com/cgi-bin/shorturl";
|
|
|
/**
|
|
|
- * 语义查询接口
|
|
|
+ * 语义查询接口.
|
|
|
*/
|
|
|
String SEMANTIC_SEMPROXY_SEARCH_URL = "https://api.weixin.qq.com/semantic/semproxy/search";
|
|
|
/**
|
|
|
- * 用code换取oauth2的access token
|
|
|
+ * 用code换取oauth2的access token.
|
|
|
*/
|
|
|
String OAUTH2_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code";
|
|
|
/**
|
|
|
- * 刷新oauth2的access token
|
|
|
+ * 刷新oauth2的access token.
|
|
|
*/
|
|
|
String OAUTH2_REFRESH_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=%s&grant_type=refresh_token&refresh_token=%s";
|
|
|
/**
|
|
|
- * 用oauth2获取用户信息
|
|
|
+ * 用oauth2获取用户信息.
|
|
|
*/
|
|
|
String OAUTH2_USERINFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=%s";
|
|
|
/**
|
|
|
- * 验证oauth2的access token是否有效
|
|
|
+ * 验证oauth2的access token是否有效.
|
|
|
*/
|
|
|
String OAUTH2_VALIDATE_TOKEN_URL = "https://api.weixin.qq.com/sns/auth?access_token=%s&openid=%s";
|
|
|
/**
|
|
|
- * 获取微信服务器IP地址
|
|
|
+ * 获取微信服务器IP地址.
|
|
|
*/
|
|
|
String GET_CALLBACK_IP_URL = "https://api.weixin.qq.com/cgi-bin/getcallbackip";
|
|
|
/**
|
|
|
- * 第三方使用网站应用授权登录的url
|
|
|
+ * 第三方使用网站应用授权登录的url.
|
|
|
*/
|
|
|
String QRCONNECT_URL = "https://open.weixin.qq.com/connect/qrconnect?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect";
|
|
|
/**
|
|
|
- * oauth2授权的url连接
|
|
|
+ * oauth2授权的url连接.
|
|
|
*/
|
|
|
String CONNECT_OAUTH2_AUTHORIZE_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s&connect_redirect=1#wechat_redirect";
|
|
|
|
|
|
/**
|
|
|
- * 获取公众号的自动回复规则
|
|
|
+ * 获取公众号的自动回复规则.
|
|
|
*/
|
|
|
String GET_CURRENT_AUTOREPLY_INFO_URL = "https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info";
|
|
|
|
|
|
/**
|
|
|
- * 公众号调用或第三方平台帮公众号调用对公众号的所有api调用(包括第三方帮其调用)次数进行清零
|
|
|
+ * 公众号调用或第三方平台帮公众号调用对公众号的所有api调用(包括第三方帮其调用)次数进行清零.
|
|
|
*/
|
|
|
String CLEAR_QUOTA_URL = "https://api.weixin.qq.com/cgi-bin/clear_quota";
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 验证消息的确来自微信服务器
|
|
|
+ * 验证消息的确来自微信服务器.
|
|
|
* 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319&token=&lang=zh_CN
|
|
|
* </pre>
|
|
|
*/
|
|
|
boolean checkSignature(String timestamp, String nonce, String signature);
|
|
|
|
|
|
/**
|
|
|
- * 获取access_token, 不强制刷新access_token
|
|
|
+ * 获取access_token, 不强制刷新access_token.
|
|
|
*
|
|
|
* @see #getAccessToken(boolean)
|
|
|
*/
|
|
@@ -87,7 +90,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 获取access_token,本方法线程安全
|
|
|
+ * 获取access_token,本方法线程安全.
|
|
|
* 且在多线程同时刷新时只刷新一次,避免超出2000次/日的调用次数上限
|
|
|
*
|
|
|
* 另:本service的所有方法都会在access_token过期时调用此方法
|
|
@@ -102,7 +105,24 @@ public interface WxMpService {
|
|
|
String getAccessToken(boolean forceRefresh) throws WxErrorException;
|
|
|
|
|
|
/**
|
|
|
- * 获得jsapi_ticket,不强制刷新jsapi_ticket
|
|
|
+ * 获得ticket,不强制刷新ticket.
|
|
|
+ *
|
|
|
+ * @see #getTicket(TicketType, boolean)
|
|
|
+ */
|
|
|
+ String getTicket(TicketType type) throws WxErrorException;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <pre>
|
|
|
+ * 获得ticket.
|
|
|
+ * 获得时会检查 Token是否过期,如果过期了,那么就刷新一下,否则就什么都不干
|
|
|
+ * </pre>
|
|
|
+ *
|
|
|
+ * @param forceRefresh 强制刷新
|
|
|
+ */
|
|
|
+ String getTicket(TicketType type, boolean forceRefresh) throws WxErrorException;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获得jsapi_ticket,不强制刷新jsapi_ticket.
|
|
|
*
|
|
|
* @see #getJsapiTicket(boolean)
|
|
|
*/
|
|
@@ -110,7 +130,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 获得jsapi_ticket
|
|
|
+ * 获得jsapi_ticket.
|
|
|
* 获得时会检查jsapiToken是否过期,如果过期了,那么就刷新一下,否则就什么都不干
|
|
|
*
|
|
|
* 详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN
|
|
@@ -122,7 +142,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 创建调用jsapi时所需要的签名
|
|
|
+ * 创建调用jsapi时所需要的签名.
|
|
|
*
|
|
|
* 详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN
|
|
|
* </pre>
|
|
@@ -131,7 +151,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 长链接转短链接接口
|
|
|
+ * 长链接转短链接接口.
|
|
|
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=长链接转短链接接口
|
|
|
* </pre>
|
|
|
*/
|
|
@@ -139,7 +159,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 语义查询接口
|
|
|
+ * 语义查询接口.
|
|
|
* 详情请见:http://mp.weixin.qq.com/wiki/index.php?title=语义理解
|
|
|
* </pre>
|
|
|
*/
|
|
@@ -147,7 +167,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 构造第三方使用网站应用授权登录的url
|
|
|
+ * 构造第三方使用网站应用授权登录的url.
|
|
|
* 详情请见: <a href="https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN">网站应用微信登录开发指南</a>
|
|
|
* URL格式为:https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
|
|
|
* </pre>
|
|
@@ -161,7 +181,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 构造oauth2授权的url连接
|
|
|
+ * 构造oauth2授权的url连接.
|
|
|
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息
|
|
|
* </pre>
|
|
|
*
|
|
@@ -172,7 +192,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 用code换取oauth2的access token
|
|
|
+ * 用code换取oauth2的access token.
|
|
|
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息
|
|
|
* </pre>
|
|
|
*/
|
|
@@ -180,14 +200,14 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 刷新oauth2的access token
|
|
|
+ * 刷新oauth2的access token.
|
|
|
* </pre>
|
|
|
*/
|
|
|
WxMpOAuth2AccessToken oauth2refreshAccessToken(String refreshToken) throws WxErrorException;
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 用oauth2获取用户信息, 当前面引导授权时的scope是snsapi_userinfo的时候才可以
|
|
|
+ * 用oauth2获取用户信息, 当前面引导授权时的scope是snsapi_userinfo的时候才可以.
|
|
|
* </pre>
|
|
|
*
|
|
|
* @param lang zh_CN, zh_TW, en
|
|
@@ -196,7 +216,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 验证oauth2的access token是否有效
|
|
|
+ * 验证oauth2的access token是否有效.
|
|
|
* </pre>
|
|
|
*/
|
|
|
boolean oauth2validateAccessToken(WxMpOAuth2AccessToken oAuth2AccessToken);
|
|
@@ -211,7 +231,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 获取公众号的自动回复规则
|
|
|
+ * 获取公众号的自动回复规则.
|
|
|
* http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751299&token=&lang=zh_CN
|
|
|
* 开发者可以通过该接口,获取公众号当前使用的自动回复规则,包括关注后自动回复、消息自动回复(60分钟内触发一次)、关键词自动回复。
|
|
|
* 请注意:
|
|
@@ -240,12 +260,12 @@ public interface WxMpService {
|
|
|
void clearQuota(String appid) throws WxErrorException;
|
|
|
|
|
|
/**
|
|
|
- * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求
|
|
|
+ * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求.
|
|
|
*/
|
|
|
String get(String url, String queryParam) throws WxErrorException;
|
|
|
|
|
|
/**
|
|
|
- * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的POST请求
|
|
|
+ * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的POST请求.
|
|
|
*/
|
|
|
String post(String url, String postData) throws WxErrorException;
|
|
|
|
|
@@ -260,7 +280,7 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 设置当微信系统响应系统繁忙时,要等待多少 retrySleepMillis(ms) * 2^(重试次数 - 1) 再发起重试
|
|
|
+ * 设置当微信系统响应系统繁忙时,要等待多少 retrySleepMillis(ms) * 2^(重试次数 - 1) 再发起重试.
|
|
|
* @param retrySleepMillis 默认:1000ms
|
|
|
* </pre>
|
|
|
*/
|
|
@@ -268,131 +288,131 @@ public interface WxMpService {
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
|
- * 设置当微信系统响应系统繁忙时,最大重试次数
|
|
|
+ * 设置当微信系统响应系统繁忙时,最大重试次数.
|
|
|
* 默认:5次
|
|
|
* </pre>
|
|
|
*/
|
|
|
void setMaxRetryTimes(int maxRetryTimes);
|
|
|
|
|
|
/**
|
|
|
- * 获取WxMpConfigStorage 对象
|
|
|
+ * 获取WxMpConfigStorage 对象.
|
|
|
*
|
|
|
* @return WxMpConfigStorage
|
|
|
*/
|
|
|
WxMpConfigStorage getWxMpConfigStorage();
|
|
|
|
|
|
/**
|
|
|
- * 注入 {@link WxMpConfigStorage} 的实现
|
|
|
+ * 注入 {@link WxMpConfigStorage} 的实现.
|
|
|
*/
|
|
|
void setWxMpConfigStorage(WxMpConfigStorage wxConfigProvider);
|
|
|
|
|
|
/**
|
|
|
- * 返回客服接口方法实现类,以方便调用其各个接口
|
|
|
+ * 返回客服接口方法实现类,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpKefuService
|
|
|
*/
|
|
|
WxMpKefuService getKefuService();
|
|
|
|
|
|
/**
|
|
|
- * 返回素材相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回素材相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpMaterialService
|
|
|
*/
|
|
|
WxMpMaterialService getMaterialService();
|
|
|
|
|
|
/**
|
|
|
- * 返回菜单相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回菜单相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpMenuService
|
|
|
*/
|
|
|
WxMpMenuService getMenuService();
|
|
|
|
|
|
/**
|
|
|
- * 返回用户相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回用户相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpUserService
|
|
|
*/
|
|
|
WxMpUserService getUserService();
|
|
|
|
|
|
/**
|
|
|
- * 返回用户标签相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回用户标签相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpUserTagService
|
|
|
*/
|
|
|
WxMpUserTagService getUserTagService();
|
|
|
|
|
|
/**
|
|
|
- * 返回二维码相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回二维码相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpQrcodeService
|
|
|
*/
|
|
|
WxMpQrcodeService getQrcodeService();
|
|
|
|
|
|
/**
|
|
|
- * 返回卡券相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回卡券相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpCardService
|
|
|
*/
|
|
|
WxMpCardService getCardService();
|
|
|
|
|
|
/**
|
|
|
- * 返回数据分析统计相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回数据分析统计相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpDataCubeService
|
|
|
*/
|
|
|
WxMpDataCubeService getDataCubeService();
|
|
|
|
|
|
/**
|
|
|
- * 返回用户黑名单管理相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回用户黑名单管理相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpUserBlacklistService
|
|
|
*/
|
|
|
WxMpUserBlacklistService getBlackListService();
|
|
|
|
|
|
/**
|
|
|
- * 返回门店管理相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回门店管理相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpStoreService
|
|
|
*/
|
|
|
WxMpStoreService getStoreService();
|
|
|
|
|
|
/**
|
|
|
- * 返回模板消息相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回模板消息相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpTemplateMsgService
|
|
|
*/
|
|
|
WxMpTemplateMsgService getTemplateMsgService();
|
|
|
|
|
|
/**
|
|
|
- * 返回一次性订阅消息相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回一次性订阅消息相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpSubscribeMsgService
|
|
|
*/
|
|
|
WxMpSubscribeMsgService getSubscribeMsgService();
|
|
|
|
|
|
/**
|
|
|
- * 返回硬件平台相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回硬件平台相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpDeviceService
|
|
|
*/
|
|
|
WxMpDeviceService getDeviceService();
|
|
|
|
|
|
/**
|
|
|
- * 返回摇一摇周边相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回摇一摇周边相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpShakeService
|
|
|
*/
|
|
|
WxMpShakeService getShakeService();
|
|
|
|
|
|
/**
|
|
|
- * 返回会员卡相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回会员卡相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpMemberCardService
|
|
|
*/
|
|
|
WxMpMemberCardService getMemberCardService();
|
|
|
|
|
|
/**
|
|
|
- * 初始化http请求对象
|
|
|
+ * 初始化http请求对象.
|
|
|
*/
|
|
|
void initHttp();
|
|
|
|
|
@@ -402,21 +422,21 @@ public interface WxMpService {
|
|
|
RequestHttp getRequestHttp();
|
|
|
|
|
|
/**
|
|
|
- * 返回群发消息相关接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回群发消息相关接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpMassMessageService
|
|
|
*/
|
|
|
WxMpMassMessageService getMassMessageService();
|
|
|
|
|
|
/**
|
|
|
- * 返回AI开放接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回AI开放接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpAiOpenService
|
|
|
*/
|
|
|
WxMpAiOpenService getAiOpenService();
|
|
|
|
|
|
/**
|
|
|
- * 返回WIFI接口方法的实现类对象,以方便调用其各个接口
|
|
|
+ * 返回WIFI接口方法的实现类对象,以方便调用其各个接口.
|
|
|
*
|
|
|
* @return WxMpWifiService
|
|
|
*/
|