diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java index 7d8f45456..bc96269ea 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java @@ -11,201 +11,186 @@ import lombok.experimental.UtilityClass; * * @author Binary Wang */ -@UtilityClass -public final class WxCpApiPathConsts { - public static final String DEFAULT_CP_BASE_URL = "https://qyapi.weixin.qq.com"; +public interface WxCpApiPathConsts { + String DEFAULT_CP_BASE_URL = "https://qyapi.weixin.qq.com"; - public static final String GET_JSAPI_TICKET = "/cgi-bin/get_jsapi_ticket"; - public static final String GET_AGENT_CONFIG_TICKET = "/cgi-bin/ticket/get?&type=agent_config"; - public static final String GET_CALLBACK_IP = "/cgi-bin/getcallbackip"; - public static final String BATCH_REPLACE_PARTY = "/cgi-bin/batch/replaceparty"; - public static final String BATCH_REPLACE_USER = "/cgi-bin/batch/replaceuser"; - public static final String BATCH_GET_RESULT = "/cgi-bin/batch/getresult?jobid="; - public static final String JSCODE_TO_SESSION = "/cgi-bin/miniprogram/jscode2session"; - public static final String GET_TOKEN = "/cgi-bin/gettoken?corpid=%s&corpsecret=%s"; - public static final String WEBHOOK_SEND = "/cgi-bin/webhook/send?key="; + String GET_JSAPI_TICKET = "/cgi-bin/get_jsapi_ticket"; + String GET_AGENT_CONFIG_TICKET = "/cgi-bin/ticket/get?&type=agent_config"; + String GET_CALLBACK_IP = "/cgi-bin/getcallbackip"; + String BATCH_REPLACE_PARTY = "/cgi-bin/batch/replaceparty"; + String BATCH_REPLACE_USER = "/cgi-bin/batch/replaceuser"; + String BATCH_GET_RESULT = "/cgi-bin/batch/getresult?jobid="; + String JSCODE_TO_SESSION = "/cgi-bin/miniprogram/jscode2session"; + String GET_TOKEN = "/cgi-bin/gettoken?corpid=%s&corpsecret=%s"; + String WEBHOOK_SEND = "/cgi-bin/webhook/send?key="; /** * 消息推送相关接口 * https://work.weixin.qq.com/api/doc/90000/90135/90235 */ - @UtilityClass - public static class Message { + interface Message { /** * 发送应用消息 */ - public static final String MESSAGE_SEND = "/cgi-bin/message/send"; + String MESSAGE_SEND = "/cgi-bin/message/send"; /** * 查询应用消息发送统计 */ - public static final String GET_STATISTICS = "/cgi-bin/message/get_statistics"; + String GET_STATISTICS = "/cgi-bin/message/get_statistics"; /** * 互联企业发送应用消息 */ - public static final String LINKEDCORP_MESSAGE_SEND = "/cgi-bin/linkedcorp/message/send"; + String LINKEDCORP_MESSAGE_SEND = "/cgi-bin/linkedcorp/message/send"; } - @UtilityClass - public static class Agent { - public static final String AGENT_GET = "/cgi-bin/agent/get?agentid=%d"; - public static final String AGENT_SET = "/cgi-bin/agent/set"; - public static final String AGENT_LIST = "/cgi-bin/agent/list"; + interface Agent { + String AGENT_GET = "/cgi-bin/agent/get?agentid=%d"; + String AGENT_SET = "/cgi-bin/agent/set"; + String AGENT_LIST = "/cgi-bin/agent/list"; } - @UtilityClass - public static class WorkBench { - public static final String WORKBENCH_TEMPLATE_SET = "/cgi-bin/agent/set_workbench_template"; - public static final String WORKBENCH_TEMPLATE_GET = "/cgi-bin/agent/get_workbench_template"; - public static final String WORKBENCH_DATA_SET = "/cgi-bin/agent/set_workbench_data"; + interface WorkBench { + String WORKBENCH_TEMPLATE_SET = "/cgi-bin/agent/set_workbench_template"; + String WORKBENCH_TEMPLATE_GET = "/cgi-bin/agent/get_workbench_template"; + String WORKBENCH_DATA_SET = "/cgi-bin/agent/set_workbench_data"; } - @UtilityClass - public static class OAuth2 { - public static final String GET_USER_INFO = "/cgi-bin/user/getuserinfo?code=%s&agentid=%d"; - public static final String GET_USER_DETAIL = "/cgi-bin/user/getuserdetail"; - public static final String URL_OAUTH2_AUTHORIZE = "https://open.weixin.qq.com/connect/oauth2/authorize"; + interface OAuth2 { + String GET_USER_INFO = "/cgi-bin/user/getuserinfo?code=%s&agentid=%d"; + String GET_USER_DETAIL = "/cgi-bin/user/getuserdetail"; + String URL_OAUTH2_AUTHORIZE = "https://open.weixin.qq.com/connect/oauth2/authorize"; } - @UtilityClass - public static class Chat { - public static final String APPCHAT_CREATE = "/cgi-bin/appchat/create"; - public static final String APPCHAT_UPDATE = "/cgi-bin/appchat/update"; - public static final String APPCHAT_GET_CHATID = "/cgi-bin/appchat/get?chatid="; - public static final String APPCHAT_SEND = "/cgi-bin/appchat/send"; + interface Chat { + String APPCHAT_CREATE = "/cgi-bin/appchat/create"; + String APPCHAT_UPDATE = "/cgi-bin/appchat/update"; + String APPCHAT_GET_CHATID = "/cgi-bin/appchat/get?chatid="; + String APPCHAT_SEND = "/cgi-bin/appchat/send"; } - @UtilityClass - public static class Department { - public static final String DEPARTMENT_CREATE = "/cgi-bin/department/create"; - public static final String DEPARTMENT_UPDATE = "/cgi-bin/department/update"; - public static final String DEPARTMENT_DELETE = "/cgi-bin/department/delete?id=%d"; - public static final String DEPARTMENT_LIST = "/cgi-bin/department/list"; + interface Department { + String DEPARTMENT_CREATE = "/cgi-bin/department/create"; + String DEPARTMENT_UPDATE = "/cgi-bin/department/update"; + String DEPARTMENT_DELETE = "/cgi-bin/department/delete?id=%d"; + String DEPARTMENT_LIST = "/cgi-bin/department/list"; } - @UtilityClass - public static class Media { - public static final String MEDIA_GET = "/cgi-bin/media/get"; - public static final String MEDIA_UPLOAD = "/cgi-bin/media/upload?type="; - public static final String IMG_UPLOAD = "/cgi-bin/media/uploadimg"; - public static final String JSSDK_MEDIA_GET = "/cgi-bin/media/get/jssdk"; + interface Media { + String MEDIA_GET = "/cgi-bin/media/get"; + String MEDIA_UPLOAD = "/cgi-bin/media/upload?type="; + String IMG_UPLOAD = "/cgi-bin/media/uploadimg"; + String JSSDK_MEDIA_GET = "/cgi-bin/media/get/jssdk"; } - @UtilityClass - public static class Menu { - public static final String MENU_CREATE = "/cgi-bin/menu/create?agentid=%d"; - public static final String MENU_DELETE = "/cgi-bin/menu/delete?agentid=%d"; - public static final String MENU_GET = "/cgi-bin/menu/get?agentid=%d"; + interface Menu { + String MENU_CREATE = "/cgi-bin/menu/create?agentid=%d"; + String MENU_DELETE = "/cgi-bin/menu/delete?agentid=%d"; + String MENU_GET = "/cgi-bin/menu/get?agentid=%d"; } - @UtilityClass - public static class Oa { - public static final String GET_CHECKIN_DATA = "/cgi-bin/checkin/getcheckindata"; - public static final String GET_CHECKIN_OPTION = "/cgi-bin/checkin/getcheckinoption"; - public static final String GET_APPROVAL_INFO = "/cgi-bin/oa/getapprovalinfo"; - public static final String GET_APPROVAL_DETAIL = "/cgi-bin/oa/getapprovaldetail"; - public static final String GET_DIAL_RECORD = "/cgi-bin/dial/get_dial_record"; - public static final String GET_TEMPLATE_DETAIL = "/cgi-bin/oa/gettemplatedetail"; - public static final String APPLY_EVENT = "/cgi-bin/oa/applyevent"; + interface Oa { + String GET_CHECKIN_DATA = "/cgi-bin/checkin/getcheckindata"; + String GET_CHECKIN_OPTION = "/cgi-bin/checkin/getcheckinoption"; + String GET_APPROVAL_INFO = "/cgi-bin/oa/getapprovalinfo"; + String GET_APPROVAL_DETAIL = "/cgi-bin/oa/getapprovaldetail"; + String GET_DIAL_RECORD = "/cgi-bin/dial/get_dial_record"; + String GET_TEMPLATE_DETAIL = "/cgi-bin/oa/gettemplatedetail"; + String APPLY_EVENT = "/cgi-bin/oa/applyevent"; - public static final String CALENDAR_ADD = "/cgi-bin/oa/calendar/add"; - public static final String CALENDAR_UPDATE = "/cgi-bin/oa/calendar/update"; - public static final String CALENDAR_GET = "/cgi-bin/oa/calendar/get"; - public static final String CALENDAR_DEL = "/cgi-bin/oa/calendar/del"; + String CALENDAR_ADD = "/cgi-bin/oa/calendar/add"; + String CALENDAR_UPDATE = "/cgi-bin/oa/calendar/update"; + String CALENDAR_GET = "/cgi-bin/oa/calendar/get"; + String CALENDAR_DEL = "/cgi-bin/oa/calendar/del"; - public static final String SCHEDULE_ADD = "/cgi-bin/oa/schedule/add"; - public static final String SCHEDULE_UPDATE = "/cgi-bin/oa/schedule/update"; - public static final String SCHEDULE_GET = "/cgi-bin/oa/schedule/get"; - public static final String SCHEDULE_DEL = "/cgi-bin/oa/schedule/del"; - public static final String SCHEDULE_LIST = "/cgi-bin/oa/schedule/get_by_calendar"; + String SCHEDULE_ADD = "/cgi-bin/oa/schedule/add"; + String SCHEDULE_UPDATE = "/cgi-bin/oa/schedule/update"; + String SCHEDULE_GET = "/cgi-bin/oa/schedule/get"; + String SCHEDULE_DEL = "/cgi-bin/oa/schedule/del"; + String SCHEDULE_LIST = "/cgi-bin/oa/schedule/get_by_calendar"; - public static final String COPY_TEMPLATE = "/cgi-bin/oa/approval/copytemplate"; + String COPY_TEMPLATE = "/cgi-bin/oa/approval/copytemplate"; } - @UtilityClass - public static class Tag { - public static final String TAG_CREATE = "/cgi-bin/tag/create"; - public static final String TAG_UPDATE = "/cgi-bin/tag/update"; - public static final String TAG_DELETE = "/cgi-bin/tag/delete?tagid=%s"; - public static final String TAG_LIST = "/cgi-bin/tag/list"; - public static final String TAG_GET = "/cgi-bin/tag/get?tagid=%s"; - public static final String TAG_ADD_TAG_USERS = "/cgi-bin/tag/addtagusers"; - public static final String TAG_DEL_TAG_USERS = "/cgi-bin/tag/deltagusers"; + interface Tag { + String TAG_CREATE = "/cgi-bin/tag/create"; + String TAG_UPDATE = "/cgi-bin/tag/update"; + String TAG_DELETE = "/cgi-bin/tag/delete?tagid=%s"; + String TAG_LIST = "/cgi-bin/tag/list"; + String TAG_GET = "/cgi-bin/tag/get?tagid=%s"; + String TAG_ADD_TAG_USERS = "/cgi-bin/tag/addtagusers"; + String TAG_DEL_TAG_USERS = "/cgi-bin/tag/deltagusers"; } - @UtilityClass - public static class TaskCard { - public static final String UPDATE_TASK_CARD = "/cgi-bin/message/update_taskcard"; + interface TaskCard { + String UPDATE_TASK_CARD = "/cgi-bin/message/update_taskcard"; } - @UtilityClass - public static class Tp { - public static final String JSCODE_TO_SESSION = "/cgi-bin/service/miniprogram/jscode2session"; - public static final String GET_CORP_TOKEN = "/cgi-bin/service/get_corp_token"; - public static final String GET_PERMANENT_CODE = "/cgi-bin/service/get_permanent_code"; - public static final String GET_SUITE_TOKEN = "/cgi-bin/service/get_suite_token"; - public static final String GET_PROVIDER_TOKEN = "/cgi-bin/service/get_provider_token"; - public static final String GET_PREAUTH_CODE = "/cgi-bin/service/get_pre_auth_code"; - public static final String GET_AUTH_INFO = "/cgi-bin/service/get_auth_info"; - public static final String GET_AUTH_CORP_JSAPI_TICKET = "/cgi-bin/get_jsapi_ticket"; - public static final String GET_SUITE_JSAPI_TICKET = "/cgi-bin/ticket/get"; - public static final String GET_USERINFO3RD = "/cgi-bin/service/getuserinfo3rd"; - public static final String GET_USERDETAIL3RD = "/cgi-bin/service/getuserdetail3rd"; - public static final String GET_LOGIN_INFO = "/cgi-bin/service/get_login_info"; + interface Tp { + String JSCODE_TO_SESSION = "/cgi-bin/service/miniprogram/jscode2session"; + String GET_CORP_TOKEN = "/cgi-bin/service/get_corp_token"; + String GET_PERMANENT_CODE = "/cgi-bin/service/get_permanent_code"; + String GET_SUITE_TOKEN = "/cgi-bin/service/get_suite_token"; + String GET_PROVIDER_TOKEN = "/cgi-bin/service/get_provider_token"; + String GET_PREAUTH_CODE = "/cgi-bin/service/get_pre_auth_code"; + String GET_AUTH_INFO = "/cgi-bin/service/get_auth_info"; + String GET_AUTH_CORP_JSAPI_TICKET = "/cgi-bin/get_jsapi_ticket"; + String GET_SUITE_JSAPI_TICKET = "/cgi-bin/ticket/get"; + String GET_USERINFO3RD = "/cgi-bin/service/getuserinfo3rd"; + String GET_USERDETAIL3RD = "/cgi-bin/service/getuserdetail3rd"; + String GET_LOGIN_INFO = "/cgi-bin/service/get_login_info"; - public static final String CONTACT_SEARCH = "/cgi-bin/service/contact/search"; - public static final String GET_ADMIN_LIST = "/cgi-bin/service/get_admin_list"; + String CONTACT_SEARCH = "/cgi-bin/service/contact/search"; + String GET_ADMIN_LIST = "/cgi-bin/service/get_admin_list"; } - @UtilityClass - public static class User { - public static final String USER_AUTHENTICATE = "/cgi-bin/user/authsucc?userid="; - public static final String USER_CREATE = "/cgi-bin/user/create"; - public static final String USER_UPDATE = "/cgi-bin/user/update"; - public static final String USER_DELETE = "/cgi-bin/user/delete?userid="; - public static final String USER_BATCH_DELETE = "/cgi-bin/user/batchdelete"; - public static final String USER_GET = "/cgi-bin/user/get?userid="; - public static final String USER_LIST = "/cgi-bin/user/list?department_id="; - public static final String USER_SIMPLE_LIST = "/cgi-bin/user/simplelist?department_id="; - public static final String BATCH_INVITE = "/cgi-bin/batch/invite"; - public static final String USER_CONVERT_TO_OPENID = "/cgi-bin/user/convert_to_openid"; - public static final String USER_CONVERT_TO_USERID = "/cgi-bin/user/convert_to_userid"; - public static final String GET_USER_ID = "/cgi-bin/user/getuserid"; - public static final String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; - public static final String GET_JOIN_QR_CODE = "/cgi-bin/corp/get_join_qrcode?size_type="; + interface User { + String USER_AUTHENTICATE = "/cgi-bin/user/authsucc?userid="; + String USER_CREATE = "/cgi-bin/user/create"; + String USER_UPDATE = "/cgi-bin/user/update"; + String USER_DELETE = "/cgi-bin/user/delete?userid="; + String USER_BATCH_DELETE = "/cgi-bin/user/batchdelete"; + String USER_GET = "/cgi-bin/user/get?userid="; + String USER_LIST = "/cgi-bin/user/list?department_id="; + String USER_SIMPLE_LIST = "/cgi-bin/user/simplelist?department_id="; + String BATCH_INVITE = "/cgi-bin/batch/invite"; + String USER_CONVERT_TO_OPENID = "/cgi-bin/user/convert_to_openid"; + String USER_CONVERT_TO_USERID = "/cgi-bin/user/convert_to_userid"; + String GET_USER_ID = "/cgi-bin/user/getuserid"; + String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; + String GET_JOIN_QR_CODE = "/cgi-bin/corp/get_join_qrcode?size_type="; } - @UtilityClass - public static class ExternalContact { + interface ExternalContact { @Deprecated - public static final String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; + String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; - public static final String ADD_CONTACT_WAY = "/cgi-bin/externalcontact/add_contact_way"; - public static final String GET_CONTACT_WAY = "/cgi-bin/externalcontact/get_contact_way"; - public static final String UPDATE_CONTACT_WAY = "/cgi-bin/externalcontact/update_contact_way"; - public static final String DEL_CONTACT_WAY = "/cgi-bin/externalcontact/del_contact_way"; - public static final String CLOSE_TEMP_CHAT = "/cgi-bin/externalcontact/close_temp_chat"; - public static final String GET_FOLLOW_USER_LIST = "/cgi-bin/externalcontact/get_follow_user_list"; - public static final String GET_CONTACT_DETAIL = "/cgi-bin/externalcontact/get?external_userid="; - public static final String GET_CONTACT_DETAIL_BATCH = "/cgi-bin/externalcontact/batch/get_by_user?"; - public static final String UPDATE_REMARK = "/cgi-bin/externalcontact/remark"; - public static final String LIST_EXTERNAL_CONTACT = "/cgi-bin/externalcontact/list?userid="; - public static final String LIST_UNASSIGNED_CONTACT = "/cgi-bin/externalcontact/get_unassigned_list"; - public static final String TRANSFER_UNASSIGNED_CONTACT = "/cgi-bin/externalcontact/transfer"; - public static final String GROUP_CHAT_LIST = "/cgi-bin/externalcontact/groupchat/list"; - public static final String GROUP_CHAT_INFO = "/cgi-bin/externalcontact/groupchat/get"; - public static final String LIST_USER_BEHAVIOR_DATA = "/cgi-bin/externalcontact/get_user_behavior_data"; - public static final String LIST_GROUP_CHAT_DATA = "/cgi-bin/externalcontact/groupchat/statistic"; - public static final String ADD_MSG_TEMPLATE = "/cgi-bin/externalcontact/add_msg_template"; - public static final String SEND_WELCOME_MSG = "/cgi-bin/externalcontact/send_welcome_msg"; + String ADD_CONTACT_WAY = "/cgi-bin/externalcontact/add_contact_way"; + String GET_CONTACT_WAY = "/cgi-bin/externalcontact/get_contact_way"; + String UPDATE_CONTACT_WAY = "/cgi-bin/externalcontact/update_contact_way"; + String DEL_CONTACT_WAY = "/cgi-bin/externalcontact/del_contact_way"; + String CLOSE_TEMP_CHAT = "/cgi-bin/externalcontact/close_temp_chat"; + String GET_FOLLOW_USER_LIST = "/cgi-bin/externalcontact/get_follow_user_list"; + String GET_CONTACT_DETAIL = "/cgi-bin/externalcontact/get?external_userid="; + String GET_CONTACT_DETAIL_BATCH = "/cgi-bin/externalcontact/batch/get_by_user?"; + String UPDATE_REMARK = "/cgi-bin/externalcontact/remark"; + String LIST_EXTERNAL_CONTACT = "/cgi-bin/externalcontact/list?userid="; + String LIST_UNASSIGNED_CONTACT = "/cgi-bin/externalcontact/get_unassigned_list"; + String TRANSFER_UNASSIGNED_CONTACT = "/cgi-bin/externalcontact/transfer"; + String GROUP_CHAT_LIST = "/cgi-bin/externalcontact/groupchat/list"; + String GROUP_CHAT_INFO = "/cgi-bin/externalcontact/groupchat/get"; + String LIST_USER_BEHAVIOR_DATA = "/cgi-bin/externalcontact/get_user_behavior_data"; + String LIST_GROUP_CHAT_DATA = "/cgi-bin/externalcontact/groupchat/statistic"; + String ADD_MSG_TEMPLATE = "/cgi-bin/externalcontact/add_msg_template"; + String SEND_WELCOME_MSG = "/cgi-bin/externalcontact/send_welcome_msg"; - public static final String GET_CORP_TAG_LIST = "/cgi-bin/externalcontact/get_corp_tag_list"; - public static final String ADD_CORP_TAG = "/cgi-bin/externalcontact/add_corp_tag"; - public static final String EDIT_CORP_TAG = "/cgi-bin/externalcontact/edit_corp_tag"; - public static final String DEL_CORP_TAG = "/cgi-bin/externalcontact/del_corp_tag"; - public static final String MARK_TAG = "/cgi-bin/externalcontact/mark_tag"; + String GET_CORP_TAG_LIST = "/cgi-bin/externalcontact/get_corp_tag_list"; + String ADD_CORP_TAG = "/cgi-bin/externalcontact/add_corp_tag"; + String EDIT_CORP_TAG = "/cgi-bin/externalcontact/edit_corp_tag"; + String DEL_CORP_TAG = "/cgi-bin/externalcontact/del_corp_tag"; + String MARK_TAG = "/cgi-bin/externalcontact/mark_tag"; } } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaAnalysisService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaAnalysisService.java index e8273bc40..fa6d44440 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaAnalysisService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaAnalysisService.java @@ -1,11 +1,6 @@ package cn.binarywang.wx.miniapp.api; -import cn.binarywang.wx.miniapp.bean.analysis.WxMaRetainInfo; -import cn.binarywang.wx.miniapp.bean.analysis.WxMaSummaryTrend; -import cn.binarywang.wx.miniapp.bean.analysis.WxMaUserPortrait; -import cn.binarywang.wx.miniapp.bean.analysis.WxMaVisitDistribution; -import cn.binarywang.wx.miniapp.bean.analysis.WxMaVisitPage; -import cn.binarywang.wx.miniapp.bean.analysis.WxMaVisitTrend; +import cn.binarywang.wx.miniapp.bean.analysis.*; import me.chanjar.weixin.common.error.WxErrorException; import java.util.Date; @@ -19,16 +14,6 @@ import java.util.List; * @since 2018-04-28 */ public interface WxMaAnalysisService { - String GET_DAILY_SUMMARY_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiddailysummarytrend"; - String GET_DAILY_VISIT_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend"; - String GET_WEEKLY_VISIT_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidweeklyvisittrend"; - String GET_MONTHLY_VISIT_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidmonthlyvisittrend"; - String GET_VISIT_DISTRIBUTION_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidvisitdistribution"; - String GET_DAILY_RETAIN_INFO_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiddailyretaininfo"; - String GET_WEEKLY_RETAIN_INFO_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidweeklyretaininfo"; - String GET_MONTHLY_RETAIN_INFO_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidmonthlyretaininfo"; - String GET_VISIT_PAGE_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidvisitpage"; - String GET_USER_PORTRAIT_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiduserportrait"; /** * 查询概况趋势 diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCloudService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCloudService.java index 8f48bef83..02c363a3a 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCloudService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCloudService.java @@ -11,28 +11,17 @@ import java.util.Map; * 云开发相关接口. * * @author Binary Wang - * @date 2020-01-22 + * @date 2020 -01-22 */ public interface WxMaCloudService { - String INVOKE_CLOUD_FUNCTION_URL = "https://api.weixin.qq.com/tcb/invokecloudfunction?env=%s&name=%s"; - String DATABASE_COLLECTION_GET_URL = "https://api.weixin.qq.com/tcb/databasecollectionget"; - String DATABASE_COLLECTION_DELETE_URL = "https://api.weixin.qq.com/tcb/databasecollectiondelete"; - String DATABASE_COLLECTION_ADD_URL = "https://api.weixin.qq.com/tcb/databasecollectionadd"; - String GET_QCLOUD_TOKEN_URL = "https://api.weixin.qq.com/tcb/getqcloudtoken"; - String BATCH_DELETE_FILE_URL = "https://api.weixin.qq.com/tcb/batchdeletefile"; - String BATCH_DOWNLOAD_FILE_URL = "https://api.weixin.qq.com/tcb/batchdownloadfile"; - String UPLOAD_FILE_URL = "https://api.weixin.qq.com/tcb/uploadfile"; - String DATABASE_MIGRATE_QUERY_INFO_URL = "https://api.weixin.qq.com/tcb/databasemigratequeryinfo"; - String DATABASE_MIGRATE_EXPORT_URL = "https://api.weixin.qq.com/tcb/databasemigrateexport"; - String DATABASE_MIGRATE_IMPORT_URL = "https://api.weixin.qq.com/tcb/databasemigrateimport"; - String UPDATE_INDEX_URL = "https://api.weixin.qq.com/tcb/updateindex"; - String DATABASE_COUNT_URL = "https://api.weixin.qq.com/tcb/databasecount"; - String DATABASE_AGGREGATE_URL = "https://api.weixin.qq.com/tcb/databaseaggregate"; - String DATABASE_QUERY_URL = "https://api.weixin.qq.com/tcb/databasequery"; - String DATABASE_UPDATE_URL = "https://api.weixin.qq.com/tcb/databaseupdate"; - String DATABASE_DELETE_URL = "https://api.weixin.qq.com/tcb/databasedelete"; - String DATABASE_ADD_URL = "https://api.weixin.qq.com/tcb/databaseadd"; - + /** + * Invoke cloud function string. + * + * @param name the name + * @param body the body + * @return the string + * @throws WxErrorException the wx error exception + */ String invokeCloudFunction(String name, String body) throws WxErrorException; /** @@ -48,15 +37,38 @@ public interface WxMaCloudService { * @param env string 是 云开发环境ID * @param name string 是 云函数名称 * @param body string 是 云函数的传入参数,具体结构由开发者定义。 - * @return resp_data string 云函数返回的buffer + * @return resp_data string 云函数返回的buffer * @throws WxErrorException . */ String invokeCloudFunction(String env, String name, String body) throws WxErrorException; + /** + * Add list. + * + * @param collection the collection + * @param list the list + * @return the list + * @throws WxErrorException the wx error exception + */ List add(String collection, List list) throws WxErrorException; + /** + * Add string. + * + * @param collection the collection + * @param obj the obj + * @return the string + * @throws WxErrorException the wx error exception + */ String add(String collection, Object obj) throws WxErrorException; + /** + * Database add json array. + * + * @param query the query + * @return the json array + * @throws WxErrorException the wx error exception + */ JsonArray databaseAdd(String query) throws WxErrorException; /** @@ -69,13 +81,28 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param query 数据库操作语句 - * @return 插入成功的数据集合主键_id + * @return 插入成功的数据集合主键_id json array * @throws WxErrorException . */ JsonArray databaseAdd(String env, String query) throws WxErrorException; + /** + * Delete integer. + * + * @param collection the collection + * @param whereJson the where json + * @return the integer + * @throws WxErrorException the wx error exception + */ Integer delete(String collection, String whereJson) throws WxErrorException; + /** + * Database delete int. + * + * @param query the query + * @return the int + * @throws WxErrorException the wx error exception + */ int databaseDelete(String query) throws WxErrorException; /** @@ -88,13 +115,29 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param query 数据库操作语句 - * @return 删除记录数量 + * @return 删除记录数量 int * @throws WxErrorException . */ int databaseDelete(String env, String query) throws WxErrorException; + /** + * Update wx cloud database update result. + * + * @param collection the collection + * @param whereJson the where json + * @param updateJson the update json + * @return the wx cloud database update result + * @throws WxErrorException the wx error exception + */ WxCloudDatabaseUpdateResult update(String collection, String whereJson, String updateJson) throws WxErrorException; + /** + * Database update wx cloud database update result. + * + * @param query the query + * @return the wx cloud database update result + * @throws WxErrorException the wx error exception + */ WxCloudDatabaseUpdateResult databaseUpdate(String query) throws WxErrorException; /** @@ -107,32 +150,40 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param query 数据库操作语句 - * @return . + * @return . wx cloud database update result * @throws WxErrorException . */ WxCloudDatabaseUpdateResult databaseUpdate(String env, String query) throws WxErrorException; /** * db.collection('geo') - * .where({ - * price: _.gt(10) - * }) - * .orderBy('_id', 'asc') - * .orderBy('price', 'desc') - * .skip(1) - * .limit(10) - * .get() - * @param collection - * @param whereJson - * @param orderBy - * @param skip - * @param limit - * @return - * @throws WxErrorException + * .where({ + * price: _.gt(10) + * }) + * .orderBy('_id', 'asc') + * .orderBy('price', 'desc') + * .skip(1) + * .limit(10) + * .get() + * + * @param collection the collection + * @param whereJson the where json + * @param orderBy the order by + * @param skip the skip + * @param limit the limit + * @return wx cloud database query result + * @throws WxErrorException the wx error exception */ WxCloudDatabaseQueryResult query(String collection, String whereJson, Map orderBy, Integer skip, Integer limit) throws WxErrorException; + /** + * Database query wx cloud database query result. + * + * @param query the query + * @return the wx cloud database query result + * @throws WxErrorException the wx error exception + */ WxCloudDatabaseQueryResult databaseQuery(String query) throws WxErrorException; /** @@ -145,11 +196,18 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param query 数据库操作语句 - * @return . + * @return . wx cloud database query result * @throws WxErrorException . */ WxCloudDatabaseQueryResult databaseQuery(String env, String query) throws WxErrorException; + /** + * Database aggregate json array. + * + * @param query the query + * @return the json array + * @throws WxErrorException the wx error exception + */ JsonArray databaseAggregate(String query) throws WxErrorException; /** @@ -162,13 +220,28 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param query 数据库操作语句 - * @return . + * @return . json array * @throws WxErrorException . */ JsonArray databaseAggregate(String env, String query) throws WxErrorException; + /** + * Count long. + * + * @param collection the collection + * @param whereJson the where json + * @return the long + * @throws WxErrorException the wx error exception + */ Long count(String collection, String whereJson) throws WxErrorException; + /** + * Database count long. + * + * @param query the query + * @return the long + * @throws WxErrorException the wx error exception + */ Long databaseCount(String query) throws WxErrorException; /** @@ -181,11 +254,19 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param query 数据库操作语句 - * @return 记录数量 + * @return 记录数量 long * @throws WxErrorException . */ Long databaseCount(String env, String query) throws WxErrorException; + /** + * Update index. + * + * @param collectionName the collection name + * @param createIndexes the create indexes + * @param dropIndexNames the drop index names + * @throws WxErrorException the wx error exception + */ void updateIndex(String collectionName, List createIndexes, List dropIndexNames) throws WxErrorException; @@ -206,6 +287,17 @@ public interface WxMaCloudService { void updateIndex(String env, String collectionName, List createIndexes, List dropIndexNames) throws WxErrorException; + /** + * Database migrate import long. + * + * @param collectionName the collection name + * @param filePath the file path + * @param fileType the file type + * @param stopOnError the stop on error + * @param conflictMode the conflict mode + * @return the long + * @throws WxErrorException the wx error exception + */ Long databaseMigrateImport(String collectionName, String filePath, int fileType, boolean stopOnError, int conflictMode) throws WxErrorException; @@ -224,12 +316,21 @@ public interface WxMaCloudService { * @param fileType 导入文件类型, 1 JSON, 2 CSV * @param stopOnError 是否在遇到错误时停止导入 * @param conflictMode 冲突处理模式 : 1 INSERT , 2 UPSERT - * @return jobId + * @return jobId long * @throws WxErrorException . */ Long databaseMigrateImport(String env, String collectionName, String filePath, int fileType, boolean stopOnError, int conflictMode) throws WxErrorException; + /** + * Database migrate export long. + * + * @param filePath the file path + * @param fileType the file type + * @param query the query + * @return the long + * @throws WxErrorException the wx error exception + */ Long databaseMigrateExport(String filePath, int fileType, String query) throws WxErrorException; /** @@ -245,11 +346,18 @@ public interface WxMaCloudService { * @param filePath 导出文件路径(文件会导出到同环境的云存储中,可使用获取下载链接 API 获取下载链接) * @param fileType 导出文件类型, 1 JSON, 2 CSV * @param query 导出条件 - * @return jobId + * @return jobId long * @throws WxErrorException . */ Long databaseMigrateExport(String env, String filePath, int fileType, String query) throws WxErrorException; + /** + * Database migrate query info wx cloud cloud database migrate query info result. + * + * @param jobId the job id + * @return the wx cloud cloud database migrate query info result + * @throws WxErrorException the wx error exception + */ WxCloudCloudDatabaseMigrateQueryInfoResult databaseMigrateQueryInfo(Long jobId) throws WxErrorException; /** @@ -263,11 +371,18 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param jobId 迁移任务ID - * @return . + * @return . wx cloud cloud database migrate query info result * @throws WxErrorException . */ WxCloudCloudDatabaseMigrateQueryInfoResult databaseMigrateQueryInfo(String env, Long jobId) throws WxErrorException; + /** + * Upload file wx cloud upload file result. + * + * @param path the path + * @return the wx cloud upload file result + * @throws WxErrorException the wx error exception + */ WxCloudUploadFileResult uploadFile(String path) throws WxErrorException; /** @@ -281,11 +396,19 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param path 上传路径 - * @return 上传结果 + * @return 上传结果 wx cloud upload file result * @throws WxErrorException . */ WxCloudUploadFileResult uploadFile(String env, String path) throws WxErrorException; + /** + * Batch download file wx cloud batch download file result. + * + * @param fileIds the file ids + * @param maxAges the max ages + * @return the wx cloud batch download file result + * @throws WxErrorException the wx error exception + */ WxCloudBatchDownloadFileResult batchDownloadFile(String[] fileIds, long[] maxAges) throws WxErrorException; /** @@ -300,11 +423,18 @@ public interface WxMaCloudService { * @param env 云环境ID * @param fileIds 文件ID列表 * @param maxAges 下载链接有效期列表,对应文件id列表 - * @return 下载链接信息 + * @return 下载链接信息 wx cloud batch download file result * @throws WxErrorException . */ WxCloudBatchDownloadFileResult batchDownloadFile(String env, String[] fileIds, long[] maxAges) throws WxErrorException; + /** + * Batch delete file wx cloud batch delete file result. + * + * @param fileIds the file ids + * @return the wx cloud batch delete file result + * @throws WxErrorException the wx error exception + */ WxCloudBatchDeleteFileResult batchDeleteFile(String[] fileIds) throws WxErrorException; /** @@ -318,7 +448,7 @@ public interface WxMaCloudService { * * @param env 云环境ID * @param fileIds 文件ID列表 - * @return 下载链接信息 + * @return 下载链接信息 wx cloud batch delete file result * @throws WxErrorException . */ WxCloudBatchDeleteFileResult batchDeleteFile(String env, String[] fileIds) throws WxErrorException; @@ -332,11 +462,17 @@ public interface WxMaCloudService { * * * @param lifeSpan 有效期(单位为秒,最大7200) - * @return . + * @return . qcloud token * @throws WxErrorException . */ WxCloudGetQcloudTokenResult getQcloudToken(long lifeSpan) throws WxErrorException; + /** + * Database collection add. + * + * @param collectionName the collection name + * @throws WxErrorException the wx error exception + */ void databaseCollectionAdd(String collectionName) throws WxErrorException; /** @@ -354,6 +490,12 @@ public interface WxMaCloudService { */ void databaseCollectionAdd(String env, String collectionName) throws WxErrorException; + /** + * Database collection delete. + * + * @param collectionName the collection name + * @throws WxErrorException the wx error exception + */ void databaseCollectionDelete(String collectionName) throws WxErrorException; /** @@ -371,6 +513,14 @@ public interface WxMaCloudService { */ void databaseCollectionDelete(String env, String collectionName) throws WxErrorException; + /** + * Database collection get wx cloud database collection get result. + * + * @param limit the limit + * @param offset the offset + * @return the wx cloud database collection get result + * @throws WxErrorException the wx error exception + */ WxCloudDatabaseCollectionGetResult databaseCollectionGet(Long limit, Long offset) throws WxErrorException; /** @@ -385,7 +535,7 @@ public interface WxMaCloudService { * @param env 云环境ID * @param limit 获取数量限制,默认值:10 * @param offset 偏移量,默认值:0 - * @return . + * @return . wx cloud database collection get result * @throws WxErrorException . */ WxCloudDatabaseCollectionGetResult databaseCollectionGet(String env, Long limit, Long offset) throws WxErrorException; diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java index ad102805d..7c13818b8 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java @@ -13,23 +13,6 @@ import java.util.List; * @since 2018-04-26 19:43 */ public interface WxMaCodeService { - /** - * 为授权的小程序帐号上传小程序代码. - */ - String COMMIT_URL = "https://api.weixin.qq.com/wxa/commit"; - String GET_QRCODE_URL = "https://api.weixin.qq.com/wxa/get_qrcode"; - String GET_CATEGORY_URL = "https://api.weixin.qq.com/wxa/get_category"; - String GET_PAGE_URL = "https://api.weixin.qq.com/wxa/get_page"; - String SUBMIT_AUDIT_URL = "https://api.weixin.qq.com/wxa/submit_audit"; - String GET_AUDIT_STATUS_URL = "https://api.weixin.qq.com/wxa/get_auditstatus"; - String GET_LATEST_AUDIT_STATUS_URL = "https://api.weixin.qq.com/wxa/get_latest_auditstatus"; - String RELEASE_URL = "https://api.weixin.qq.com/wxa/release"; - String CHANGE_VISIT_STATUS_URL = "https://api.weixin.qq.com/wxa/change_visitstatus"; - String REVERT_CODE_RELEASE_URL = "https://api.weixin.qq.com/wxa/revertcoderelease"; - String GET_SUPPORT_VERSION_URL = "https://api.weixin.qq.com/cgi-bin/wxopen/getweappsupportversion"; - String SET_SUPPORT_VERSION_URL = "https://api.weixin.qq.com/cgi-bin/wxopen/setweappsupportversion"; - String UNDO_CODE_AUDIT_URL = "https://api.weixin.qq.com/wxa/undocodeaudit"; - /** * 为授权的小程序帐号上传小程序代码(仅仅支持第三方开放平台). * diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaExpressService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaExpressService.java index b6f5e2d68..b8229ceeb 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaExpressService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaExpressService.java @@ -12,192 +12,128 @@ import java.util.List; /** * 小程序物流助手 + * * @author xiaoyu * @since 2019-11-26 */ public interface WxMaExpressService { - /** - * 获取支持的快递公司列表 - */ - String ALL_DELIVERY_URL = "https://api.weixin.qq.com/cgi-bin/express/business/delivery/getall"; - - /** - * 获取所有绑定的物流账号 - */ - String ALL_ACCOUNT_URL = "https://api.weixin.qq.com/cgi-bin/express/business/account/getall"; - - /** - * 绑定、解绑物流账号 - */ - String BIND_ACCOUNT_URL = "https://api.weixin.qq.com/cgi-bin/express/business/account/bind"; - - /** - * 获取电子面单余额 - */ - String GET_QUOTA_URL = "https://api.weixin.qq.com/cgi-bin/express/business/quota/get"; - - /** - * 配置面单打印员 - */ - String UPDATE_PRINTER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/printer/update"; - - /** - * 获取打印员 - */ - String GET_PRINTER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/printer/getall"; - - /** - * 生成运单 - */ - String ADD_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/add"; - - /** - * 批量获取运单数据 - */ - String BATCH_GET_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/batchget"; - - /** - * 取消运单 - */ - String CANCEL_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/cancel"; - - /** - * 获取运单数据 - */ - String GET_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/get"; - - /** - * 查询运单轨迹 - */ - String GET_PATH_URL = "https://api.weixin.qq.com/cgi-bin/express/business/path/get"; - - /** - * 模拟快递公司更新订单状态 - */ - String TEST_UPDATE_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/test_update_order"; /** * 获取支持的快递公司列表 - * @return 快递公司列表 + * 查看文档 + * + * @return 快递公司列表 * @throws WxErrorException 获取失败时返回 - *
-   *   查看文档
-   * 
*/ List getAllDelivery() throws WxErrorException; /** * 获取所有绑定的物流账号 + * 查看文档 + * * @return 物流账号list * @throws WxErrorException 获取失败时返回 - *
-   *   查看文档
-   * 
*/ List getAllAccount() throws WxErrorException; /** * 绑定、解绑物流账号 + * + * 查看文档 + * * @param wxMaExpressBindAccountRequest 物流账号对象 * @throws WxErrorException 请求失败时返回 - *
-   *   查看文档
-   * 
*/ void bindAccount(WxMaExpressBindAccountRequest wxMaExpressBindAccountRequest) throws WxErrorException; /** * 获取电子面单余额。仅在使用加盟类快递公司时,才可以调用。 + * 查看文档 + * * @param wxMaExpressBindAccountRequest 物流账号对象 * @return 电子面单余额 * @throws WxErrorException 获取失败时返回 - *
-   *   查看文档
-   * 
*/ Integer getQuota(WxMaExpressBindAccountRequest wxMaExpressBindAccountRequest) throws WxErrorException; /** * 配置面单打印员,可以设置多个,若需要使用微信打单 PC 软件,才需要调用。 - * @param wxMaExpressPrinterUpdateRequest 面单打印员对象 + * + * 查看文档 + * + * @param wxMaExpressPrinterUpdateRequest 面单打印员对象 * @throws WxErrorException 请求失败时返回 - *
-   *   查看文档
-   * 
*/ void updatePrinter(WxMaExpressPrinterUpdateRequest wxMaExpressPrinterUpdateRequest) throws WxErrorException; /** * 获取打印员。若需要使用微信打单 PC 软件,才需要调用 + * 查看文档 + * * @return 打印员 * @throws WxErrorException 获取失败时返回 - *
-   *   查看文档
-   * 
*/ WxMaExpressPrinter getPrinter() throws WxErrorException; /** * 生成运单 + * 查看文档 + * * @param wxMaExpressAddOrderRequest 生成运单请求对象 * @return 生成运单结果 * @throws WxErrorException 请求失败时返回 - *
-   *   查看文档
-   * 
*/ WxMaExpressOrderInfoResult addOrder(WxMaExpressAddOrderRequest wxMaExpressAddOrderRequest) throws WxErrorException; /** * 批量获取运单数据 + * + * 查看文档 + * * @param requests 获取运单请求对象集合,最多不能超过1000个 * @return 运单信息集合 * @throws WxErrorException 获取失败时返回 - *
-   *   查看文档
-   * 
*/ List batchGetOrder(List requests) throws WxErrorException; /** * 取消运单 + * + * 查看文档 + * * @param wxMaExpressGetOrderRequest 运单信息请求对象 * @throws WxErrorException 取消失败时返回 - *
-   *   查看文档
-   * 
*/ void cancelOrder(WxMaExpressGetOrderRequest wxMaExpressGetOrderRequest) throws WxErrorException; /** * 获取运单数据 + * + * 查看文档 + * * @param wxMaExpressGetOrderRequest 运单信息请求对象 * @return 运单信息 * @throws WxErrorException 获取失败时返回 - *
-   *   查看文档
-   * 
*/ WxMaExpressOrderInfoResult getOrder(WxMaExpressGetOrderRequest wxMaExpressGetOrderRequest) throws WxErrorException; /** * 查询运单轨迹 + * + * 查看文档 + * * @param wxMaExpressGetOrderRequest 运单信息请求对象 * @return 运单轨迹对象 * @throws WxErrorException 查询失败时返回 - *
-   *   查看文档
-   * 
*/ WxMaExpressPath getPath(WxMaExpressGetOrderRequest wxMaExpressGetOrderRequest) throws WxErrorException; /** * 模拟快递公司更新订单状态, 该接口只能用户测试 - * @param wxMaExpressTestUpdateOrderRequest 模拟快递公司更新订单状态请求对象 + * 查看文档 + * + * @param wxMaExpressTestUpdateOrderRequest 模拟快递公司更新订单状态请求对象 * @throws WxErrorException 模拟更新订单状态失败时返回 - *
-   *   查看文档
-   * 
*/ void testUpdateOrder(WxMaExpressTestUpdateOrderRequest wxMaExpressTestUpdateOrderRequest) throws WxErrorException; } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaJsapiService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaJsapiService.java index f81b7c6ce..0e22f7de9 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaJsapiService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaJsapiService.java @@ -12,15 +12,12 @@ import me.chanjar.weixin.common.error.WxErrorException; * @author Binary Wang */ public interface WxMaJsapiService { - /** - * 获得jsapi_ticket的url - */ - String GET_JSAPI_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket"; - /** * 获得卡券api_ticket,不强制刷新api_ticket * - * @see #getJsapiTicket(boolean) + * @return the card api ticket + * @throws WxErrorException the wx error exception + * @see #getJsapiTicket(boolean) #getJsapiTicket(boolean) */ String getCardApiTicket() throws WxErrorException; @@ -33,13 +30,17 @@ public interface WxMaJsapiService { * * * @param forceRefresh 强制刷新 + * @return the card api ticket + * @throws WxErrorException the wx error exception */ String getCardApiTicket(boolean forceRefresh) throws WxErrorException; /** * 获得jsapi_ticket,不强制刷新jsapi_ticket * - * @see #getJsapiTicket(boolean) + * @return the jsapi ticket + * @throws WxErrorException the wx error exception + * @see #getJsapiTicket(boolean) #getJsapiTicket(boolean) */ String getJsapiTicket() throws WxErrorException; @@ -52,6 +53,8 @@ public interface WxMaJsapiService { * * * @param forceRefresh 强制刷新 + * @return the jsapi ticket + * @throws WxErrorException the wx error exception */ String getJsapiTicket(boolean forceRefresh) throws WxErrorException; @@ -61,6 +64,10 @@ public interface WxMaJsapiService { * * 详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN * + * + * @param url the url + * @return the wx jsapi signature + * @throws WxErrorException the wx error exception */ WxJsapiSignature createJsapiSignature(String url) throws WxErrorException; diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java index 882627dd6..df5c6e653 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java @@ -16,14 +16,6 @@ import java.util.List; * @author lipengjun (939961241@qq.com) */ public interface WxMaLiveGoodsService { - String ADD_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/add"; - String RESET_AUDIT_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/resetaudit"; - String AUDIT_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/audit"; - String DELETE_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/delete"; - String UPDATE_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/update"; - String GET_GOODS_WARE_HOUSE = "https://api.weixin.qq.com/wxa/business/getgoodswarehouse"; - String GET_APPROVED_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/getapproved"; - /** * 商品添加并提审 *
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java
index 78cb4d497..a90f4756b 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java
@@ -14,17 +14,6 @@ import java.util.List;
  * @author yjwang
  */
 public interface WxMaLiveService {
-  String GET_LIVE_INFO = "https://api.weixin.qq.com/wxa/business/getliveinfo";
-  String CREATE_ROOM = "https://api.weixin.qq.com/wxaapi/broadcast/room/create";
-  String ADD_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/room/addgoods";
-  String DELETE_ROOM = "https://api.weixin.qq.com/wxaapi/broadcast/room/deleteroom";
-  String EDIT_ROOM = "https://api.weixin.qq.com/wxaapi/broadcast/room/editroom";
-  String GET_PUSH_URL = "https://api.weixin.qq.com/wxaapi/broadcast/room/getpushurl";
-  String GET_SHARED_CODE = "https://api.weixin.qq.com/wxaapi/broadcast/room/getsharedcode";
-  String ADD_ASSISTANT = "https://api.weixin.qq.com/wxaapi/broadcast/room/addassistant";
-  String MODIFY_ASSISTANT = "https://api.weixin.qq.com/wxaapi/broadcast/room/modifyassistant";
-  String REMOVE_ASSISTANT = "https://api.weixin.qq.com/wxaapi/broadcast/room/removeassistant";
-  String GET_ASSISTANT_LIST = "https://api.weixin.qq.com/wxaapi/broadcast/room/getassistantlist";
 
   /**
    * 创建直播间
@@ -95,6 +84,7 @@ public interface WxMaLiveService {
    * @throws WxErrorException .
    */
   String getSharedCode(Integer roomId, String params) throws WxErrorException;
+
   /**
    * 获取直播房间列表.(分页)
    *
@@ -153,6 +143,7 @@ public interface WxMaLiveService {
    * @throws WxErrorException .
    */
   boolean addGoodsToRoom(Integer roomId, List goodsIds) throws WxErrorException;
+
   /**
    * 添加管理直播间小助手
    * 

@@ -168,6 +159,7 @@ public interface WxMaLiveService { * @throws WxErrorException . */ boolean addAssistant(Integer roomId, List users) throws WxErrorException; + /** * 修改直播间小助手昵称 *

@@ -183,7 +175,8 @@ public interface WxMaLiveService { * @return 修改小助手昵称是否成功 * @throws WxErrorException . */ - boolean modifyAssistant(Integer roomId, String username,String nickname) throws WxErrorException; + boolean modifyAssistant(Integer roomId, String username, String nickname) throws WxErrorException; + /** * 删除直播间小助手 *

@@ -199,6 +192,7 @@ public interface WxMaLiveService { * @throws WxErrorException . */ boolean removeAssistant(Integer roomId, String username) throws WxErrorException; + /** * 查询直播间小助手 *

diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMediaService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMediaService.java index 48ebb8a10..9cf42599a 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMediaService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMediaService.java @@ -15,8 +15,6 @@ import java.io.InputStream; * @author Binary Wang */ public interface WxMaMediaService { - String MEDIA_UPLOAD_URL = "https://api.weixin.qq.com/cgi-bin/media/upload?type=%s"; - String MEDIA_GET_URL = "https://api.weixin.qq.com/cgi-bin/media/get"; /** *

diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java
index 70fd3301d..b60054fc1 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java
@@ -13,12 +13,6 @@ import me.chanjar.weixin.common.error.WxErrorException;
  * @author Binary Wang
  */
 public interface WxMaMsgService {
-  String KEFU_MESSAGE_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/custom/send";
-  String TEMPLATE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send";
-  String SUBSCRIBE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send";
-  String UNIFORM_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send";
-  String ACTIVITY_ID_CREATE_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/activityid/create";
-  String UPDATABLE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/updatablemsg/send";
 
   /**
    * 
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaPluginService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaPluginService.java
index 6b25c0327..7a790740b 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaPluginService.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaPluginService.java
@@ -5,7 +5,7 @@ import me.chanjar.weixin.common.error.WxErrorException;
 
 /**
  * 小程序插件管理 API
- *
+ * 

* 详情请见:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/plugin-management/pluginManager.applyPlugin.html * 或者:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Mini_Programs/Plug-ins_Management.html * @@ -13,11 +13,6 @@ import me.chanjar.weixin.common.error.WxErrorException; */ public interface WxMaPluginService { - /** - * The constant PLUGIN_URL. - */ - String PLUGIN_URL = "https://api.weixin.qq.com/wxa/plugin"; - /** * 向插件开发者发起使用插件的申请 * diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaQrcodeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaQrcodeService.java index 25e63e626..11f3010f0 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaQrcodeService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaQrcodeService.java @@ -17,9 +17,6 @@ import java.io.File; * @author Binary Wang */ public interface WxMaQrcodeService { - String CREATE_QRCODE_URL = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode"; - String GET_WXACODE_URL = "https://api.weixin.qq.com/wxa/getwxacode"; - String GET_WXACODE_UNLIMIT_URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit"; /** * 接口C: 获取小程序页面二维码. diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaRunService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaRunService.java index 8a88c91db..90ef0d038 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaRunService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaRunService.java @@ -1,16 +1,15 @@ package cn.binarywang.wx.miniapp.api; -import java.util.List; - import cn.binarywang.wx.miniapp.bean.WxMaRunStepInfo; +import java.util.List; + /** * 微信运动相关操作接口. * * @author Binary Wang */ public interface WxMaRunService { - /** * 解密分享敏感数据. * 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeRunData.html diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSchemeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSchemeService.java index aaf7921c1..e480912e7 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSchemeService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSchemeService.java @@ -14,8 +14,6 @@ import me.chanjar.weixin.common.error.WxErrorException; * @date : 2021-01-26 */ public interface WxMaSchemeService { - String GENERATE_SCHEME_URL = "https://api.weixin.qq.com/wxa/generatescheme"; - /** * 获取小程序scheme码 * diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSecCheckService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSecCheckService.java index 7733b77ed..50e03b30d 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSecCheckService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSecCheckService.java @@ -1,10 +1,10 @@ package cn.binarywang.wx.miniapp.api; import cn.binarywang.wx.miniapp.bean.WxMaMediaAsyncCheckResult; -import java.io.File; - import me.chanjar.weixin.common.error.WxErrorException; +import java.io.File; + /** *

  * 内容安全相关接口.
@@ -14,13 +14,6 @@ import me.chanjar.weixin.common.error.WxErrorException;
  * @author Binary Wang
  */
 public interface WxMaSecCheckService {
-
-  String IMG_SEC_CHECK_URL = "https://api.weixin.qq.com/wxa/img_sec_check";
-
-  String MSG_SEC_CHECK_URL = "https://api.weixin.qq.com/wxa/msg_sec_check";
-
-  String MEDIA_CHECK_ASYNC_URL = "https://api.weixin.qq.com/wxa/media_check_async";
-
   /**
    * 
    * 校验一张图片是否含有违法违规内容.
@@ -29,13 +22,18 @@ public interface WxMaSecCheckService {
    * 2)敏感人脸识别:用户头像;媒体类用户文章里的图片检测;社交类用户上传的图片检测等。频率限制:单个 appId 调用上限为 1000 次/分钟,100,000 次/天
    * 详情请见: https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/imgSecCheck.html
    * 
+ * + * @param file the file + * @return the boolean + * @throws WxErrorException the wx error exception */ boolean checkImage(File file) throws WxErrorException; /** * 校验一张图片是否含有违法违规内容 + * * @param fileUrl 文件网络地址 - * @return 是否违规 + * @return 是否违规 boolean * @throws WxErrorException . */ boolean checkImage(String fileUrl) throws WxErrorException; @@ -49,6 +47,10 @@ public interface WxMaSecCheckService { * 游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。 频率限制:单个 appId 调用上限为 4000 次/分钟,2,000,000 次/天* * 详情请见: https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/msgSecCheck.html *
+ * + * @param msgString the msg string + * @return the boolean + * @throws WxErrorException the wx error exception */ boolean checkMessage(String msgString) throws WxErrorException; @@ -65,10 +67,12 @@ public interface WxMaSecCheckService { * 详情请见: * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.mediaCheckAsync.html *
- * @param mediaUrl 要检测的多媒体url + * + * @param mediaUrl 要检测的多媒体url * @param mediaType 媒体类型,{@link cn.binarywang.wx.miniapp.constant.WxMaConstants.SecCheckMediaType} - * @return + * @return wx ma media async check result + * @throws WxErrorException the wx error exception */ - WxMaMediaAsyncCheckResult mediaCheckAsync(String mediaUrl,int mediaType) throws WxErrorException; + WxMaMediaAsyncCheckResult mediaCheckAsync(String mediaUrl, int mediaType) throws WxErrorException; } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java index de054998a..c1bdb2697 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java @@ -2,9 +2,9 @@ package cn.binarywang.wx.miniapp.api; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.config.WxMaConfig; +import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.service.WxImgProcService; import me.chanjar.weixin.common.service.WxOcrService; -import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.service.WxService; import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor; import me.chanjar.weixin.common.util.http.RequestExecutor; @@ -13,6 +13,8 @@ import me.chanjar.weixin.common.util.http.RequestHttp; import java.util.Map; /** + * The interface Wx ma service. + * * @author Binary Wang */ public interface WxMaService extends WxService { @@ -21,6 +23,9 @@ public interface WxMaService extends WxService { */ String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"; + /** + * The constant JSCODE_TO_SESSION_URL. + */ String JSCODE_TO_SESSION_URL = "https://api.weixin.qq.com/sns/jscode2session"; /** * getPaidUnionId @@ -36,6 +41,8 @@ public interface WxMaService extends WxService { * 获取登录后的session信息. * * @param jsCode 登录时获取的 code + * @return the wx ma jscode 2 session result + * @throws WxErrorException the wx error exception */ WxMaJscode2SessionResult jsCode2SessionInfo(String jsCode) throws WxErrorException; @@ -47,10 +54,10 @@ public interface WxMaService extends WxService { * http请求方式:POST http(s)://api.weixin.qq.com/wxa/setdynamicdata?access_token=ACCESS_TOKEN *
* - * @param data 推送到微信后台的数据列表,该数据被微信用于流量分配,注意该字段为string类型而不是object * @param lifespan 数据有效时间,秒为单位,一般为86400,一天一次导入的频率 - * @param scene 1代表用于搜索的数据 * @param type 用于标识数据所属的服务类目 + * @param scene 1代表用于搜索的数据 + * @param data 推送到微信后台的数据列表,该数据被微信用于流量分配,注意该字段为string类型而不是object * @throws WxErrorException . */ void setDynamicData(int lifespan, String type, int scene, String data) throws WxErrorException; @@ -60,13 +67,20 @@ public interface WxMaService extends WxService { * 验证消息的确来自微信服务器. * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319&token=&lang=zh_CN *
+ * + * @param timestamp the timestamp + * @param nonce the nonce + * @param signature the signature + * @return the boolean */ boolean checkSignature(String timestamp, String nonce, String signature); /** * 获取access_token, 不强制刷新access_token. * - * @see #getAccessToken(boolean) + * @return the access token + * @throws WxErrorException the wx error exception + * @see #getAccessToken(boolean) #getAccessToken(boolean) */ String getAccessToken() throws WxErrorException; @@ -83,6 +97,8 @@ public interface WxMaService extends WxService { * * * @param forceRefresh 强制刷新 + * @return the access token + * @throws WxErrorException the wx error exception */ String getAccessToken(boolean forceRefresh) throws WxErrorException; @@ -99,7 +115,7 @@ public interface WxMaService extends WxService { * @param transactionId 非必填 微信支付订单号 * @param mchId 非必填 微信支付分配的商户号,和商户订单号配合使用 * @param outTradeNo 非必填 微信支付商户订单号,和商户号配合使用 - * @return UnionId. + * @return UnionId. paid union id * @throws WxErrorException . */ String getPaidUnionId(String openid, String transactionId, String mchId, String outTradeNo) throws WxErrorException; @@ -111,12 +127,13 @@ public interface WxMaService extends WxService { * 可以参考,{@link MediaUploadRequestExecutor}的实现方法 * * - * @param . * @param . - * @param data 参数或请求数据 + * @param . * @param executor 执行器 * @param uri 接口请求地址 - * @return . + * @param data 参数或请求数据 + * @return . t + * @throws WxErrorException the wx error exception */ T execute(RequestExecutor executor, String uri, E data) throws WxErrorException; @@ -143,7 +160,7 @@ public interface WxMaService extends WxService { /** * 获取WxMaConfig 对象. * - * @return WxMaConfig + * @return WxMaConfig wx ma config */ WxMaConfig getWxMaConfig(); @@ -189,7 +206,7 @@ public interface WxMaService extends WxService { * 进行相应的公众号切换. * * @param mpId 公众号标识 - * @return 切换是否成功 + * @return 切换是否成功 boolean */ boolean switchover(String mpId); @@ -197,104 +214,105 @@ public interface WxMaService extends WxService { * 进行相应的公众号切换. * * @param miniappId 小程序标识 - * @return 切换成功,则返回当前对象,方便链式调用,否则抛出异常 + * @return 切换成功 ,则返回当前对象,方便链式调用,否则抛出异常 */ WxMaService switchoverTo(String miniappId); /** * 返回消息(客服消息和模版消息)发送接口方法实现类,以方便调用其各个接口. * - * @return WxMaMsgService + * @return WxMaMsgService msg service */ WxMaMsgService getMsgService(); /** * 返回素材相关接口方法的实现类对象,以方便调用其各个接口. * - * @return WxMaMediaService + * @return WxMaMediaService media service */ WxMaMediaService getMediaService(); /** * 返回用户相关接口方法的实现类对象,以方便调用其各个接口. * - * @return WxMaUserService + * @return WxMaUserService user service */ WxMaUserService getUserService(); /** * 返回二维码相关接口方法的实现类对象,以方便调用其各个接口. * - * @return WxMaQrcodeService + * @return WxMaQrcodeService qrcode service */ WxMaQrcodeService getQrcodeService(); /** * 返回获取小程序scheme码实现对象,以方便调用其各个接口. - * @return WxMaSchemeService + * + * @return WxMaSchemeService wx ma scheme service */ WxMaSchemeService getWxMaSchemeService(); /** * 返回订阅消息配置相关接口方法的实现类对象, 以方便调用其各个接口. * - * @return WxMaSubscribeService + * @return WxMaSubscribeService subscribe service */ WxMaSubscribeService getSubscribeService(); /** * 数据分析相关查询服务. * - * @return WxMaAnalysisService + * @return WxMaAnalysisService analysis service */ WxMaAnalysisService getAnalysisService(); /** * 返回代码操作相关的 API. * - * @return WxMaCodeService + * @return WxMaCodeService code service */ WxMaCodeService getCodeService(); /** * 返回jsapi操作相关的 API服务类对象. * - * @return WxMaJsapiService + * @return WxMaJsapiService jsapi service */ WxMaJsapiService getJsapiService(); /** * 小程序修改服务器地址、成员管理 API. * - * @return WxMaSettingService + * @return WxMaSettingService setting service */ WxMaSettingService getSettingService(); /** * 返回分享相关查询服务. * - * @return WxMaShareService + * @return WxMaShareService share service */ WxMaShareService getShareService(); /** * 返回微信运动相关接口服务对象. * - * @return WxMaShareService + * @return WxMaShareService run service */ WxMaRunService getRunService(); /** * 返回内容安全相关接口服务对象. * - * @return WxMaShareService + * @return WxMaShareService sec check service */ WxMaSecCheckService getSecCheckService(); /** * 返回插件相关接口服务对象. * - * @return WxMaPluginService + * @return WxMaPluginService plugin service */ WxMaPluginService getPluginService(); @@ -306,35 +324,35 @@ public interface WxMaService extends WxService { /** * 请求http请求相关信息. * - * @return . + * @return . request http */ RequestHttp getRequestHttp(); /** * 获取物流助手接口服务对象 * - * @return . + * @return . express service */ WxMaExpressService getExpressService(); /** * 获取云开发接口服务对象 * - * @return . + * @return . cloud service */ WxMaCloudService getCloudService(); /** * 获取直播接口服务对象 * - * @return . + * @return . live service */ WxMaLiveService getLiveService(); /** * 获取直播间商品服务对象 * - * @return . + * @return . live goods service */ WxMaLiveGoodsService getLiveGoodsService(); @@ -348,7 +366,7 @@ public interface WxMaService extends WxService { /** * 返回图像处理接口的实现类对象,以方便调用其各个接口. * - * @return WxImgProcService + * @return WxImgProcService img proc service */ WxImgProcService getImgProcService(); diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSettingService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSettingService.java index 8cc793498..a001f7938 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSettingService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSettingService.java @@ -10,18 +10,6 @@ import me.chanjar.weixin.common.error.WxErrorException; * @since 2018-04-27 15:46 */ public interface WxMaSettingService { - /** - * 修改服务器地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1489138143_WPbOO&token=&lang=zh_CN - * access_token 为 authorizer_access_token - */ - String MODIFY_DOMAIN_URL = "https://api.weixin.qq.com/wxa/modify_domain"; - String SET_WEB_VIEW_DOMAIN_URL = "https://api.weixin.qq.com/wxa/setwebviewdomain"; - /** - * 小程序成员管理:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1489140588_nVUgx&token=&lang=zh_CN - * access_token 为 authorizer_access_token - */ - String BIND_TESTER_URL = "https://api.weixin.qq.com/wxa/bind_tester"; - String UNBIND_TESTER_URL = "https://api.weixin.qq.com/wxa/unbind_tester"; /** * 操作服务器域名 diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java index eaa25864c..5e2e3b23d 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java @@ -16,40 +16,6 @@ import java.util.List; * @date 2019-12-15 */ public interface WxMaSubscribeService { - /** - * 获取模板标题下的关键词列表. - */ - String GET_PUB_TEMPLATE_TITLE_LIST_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatetitles"; - - /** - * 获取模板标题下的关键词列表. - */ - String GET_PUB_TEMPLATE_KEY_WORDS_BY_ID_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatekeywords"; - - /** - * 组合模板并添加至帐号下的个人模板库. - */ - String TEMPLATE_ADD_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate"; - - /** - * 获取当前帐号下的个人模板列表. - */ - String TEMPLATE_LIST_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate"; - - /** - * 删除帐号下的某个模板. - */ - String TEMPLATE_DEL_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/deltemplate"; - - /** - * 获取小程序账号的类目 - */ - String GET_CATEGORY_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getcategory"; - - /** - * 发送订阅消息 - */ - String SUBSCRIBE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send"; /** *
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java
index 3b7abeeb4..0c513789c 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java
@@ -13,7 +13,6 @@ import java.util.Map;
  * @author Binary Wang
  */
 public interface WxMaUserService {
-  String SET_USER_STORAGE = "https://api.weixin.qq.com/wxa/set_user_storage?appid=%s&signature=%s&openid=%s&sig_method=%s";
 
   /**
    * 获取登录后的session信息.
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java
index 0a0ecd493..fe59e1e43 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java
@@ -11,14 +11,14 @@ import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.common.service.WxImgProcService;
-import me.chanjar.weixin.common.service.WxOcrService;
 import me.chanjar.weixin.common.bean.ToJson;
 import me.chanjar.weixin.common.bean.WxAccessToken;
 import me.chanjar.weixin.common.enums.WxType;
 import me.chanjar.weixin.common.error.WxError;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.error.WxRuntimeException;
+import me.chanjar.weixin.common.service.WxImgProcService;
+import me.chanjar.weixin.common.service.WxOcrService;
 import me.chanjar.weixin.common.util.DataUtils;
 import me.chanjar.weixin.common.util.crypto.SHA1;
 import me.chanjar.weixin.common.util.http.RequestExecutor;
@@ -41,8 +41,7 @@ import java.util.concurrent.locks.Lock;
  */
 @Slf4j
 public abstract class BaseWxMaServiceImpl implements WxMaService, RequestHttp {
-  private Map configMap;
-
+  protected static final Gson GSON = new Gson();
   private final WxMaMsgService kefuService = new WxMaMsgServiceImpl(this);
   private final WxMaMediaService materialService = new WxMaMediaServiceImpl(this);
   private final WxMaUserService userService = new WxMaUserServiceImpl(this);
@@ -63,12 +62,10 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH
   private final WxMaLiveGoodsService liveGoodsService = new WxMaLiveGoodsServiceImpl(this);
   private final WxOcrService ocrService = new WxMaOcrServiceImpl(this);
   private final WxImgProcService imgProcService = new WxMaImgProcServiceImpl(this);
-
+  private Map configMap;
   private int retrySleepMillis = 1000;
   private int maxRetryTimes = 5;
 
-  protected static final Gson GSON = new Gson();
-
   @Override
   public RequestHttp getRequestHttp() {
     return this;
@@ -188,6 +185,7 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH
   public String post(String url, Object obj) throws WxErrorException {
     return this.execute(SimplePostRequestExecutor.create(this), url, WxGsonBuilder.create().toJson(obj));
   }
+
   @Override
   public String post(String url, ToJson obj) throws WxErrorException {
     return this.post(url, obj.toJson());
@@ -197,6 +195,7 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH
   public String post(String url, JsonObject jsonObject) throws WxErrorException {
     return this.post(url, jsonObject.toString());
   }
+
   /**
    * 向微信端发送请求,在这里执行的策略是当发生access_token过期时才去刷新,然后重新执行请求,而不是全局定时请求
    */
@@ -244,8 +243,8 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH
     }
     String accessToken = getAccessToken(false);
 
-    if(StringUtils.isNotEmpty(this.getWxMaConfig().getApiHostUrl())){
-      uri = uri.replace("https://api.weixin.qq.com",this.getWxMaConfig().getApiHostUrl()  );
+    if (StringUtils.isNotEmpty(this.getWxMaConfig().getApiHostUrl())) {
+      uri = uri.replace("https://api.weixin.qq.com", this.getWxMaConfig().getApiHostUrl());
     }
 
     String uriWithAccessToken = uri + (uri.contains("?") ? "&" : "?") + "access_token=" + accessToken;
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaAnalysisServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaAnalysisServiceImpl.java
index 72ab9cd9d..e5772a73b 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaAnalysisServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaAnalysisServiceImpl.java
@@ -15,6 +15,8 @@ import java.lang.reflect.Type;
 import java.util.Date;
 import java.util.List;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Analysis.*;
+
 /**
  * @author Charming
  * @since 2018-04-28
@@ -23,6 +25,13 @@ import java.util.List;
 public class WxMaAnalysisServiceImpl implements WxMaAnalysisService {
   private final WxMaService service;
 
+  private static String toJson(Date beginDate, Date endDate) {
+    JsonObject param = new JsonObject();
+    param.addProperty("begin_date", DateFormatUtils.format(beginDate, "yyyyMMdd"));
+    param.addProperty("end_date", DateFormatUtils.format(endDate, "yyyyMMdd"));
+    return param.toString();
+  }
+
   @Override
   public List getDailySummaryTrend(Date beginDate, Date endDate) throws WxErrorException {
     return getAnalysisResultAsList(GET_DAILY_SUMMARY_TREND_URL, beginDate, endDate,
@@ -108,11 +117,4 @@ public class WxMaAnalysisServiceImpl implements WxMaAnalysisService {
       return null;
     }
   }
-
-  private static String toJson(Date beginDate, Date endDate) {
-    JsonObject param = new JsonObject();
-    param.addProperty("begin_date", DateFormatUtils.format(beginDate, "yyyyMMdd"));
-    param.addProperty("end_date", DateFormatUtils.format(endDate, "yyyyMMdd"));
-    return param.toString();
-  }
 }
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCloudServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCloudServiceImpl.java
index 674200bb5..d2ed6e2de 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCloudServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCloudServiceImpl.java
@@ -4,8 +4,8 @@ import cn.binarywang.wx.miniapp.api.WxMaCloudService;
 import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.binarywang.wx.miniapp.bean.cloud.*;
 import cn.binarywang.wx.miniapp.constant.WxMaConstants;
-import cn.binarywang.wx.miniapp.util.JoinerUtils;
 import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
+import cn.binarywang.wx.miniapp.util.JoinerUtils;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.gson.JsonArray;
@@ -20,7 +20,12 @@ import me.chanjar.weixin.common.util.json.WxGsonBuilder;
 import org.apache.commons.lang3.StringUtils;
 
 import java.io.Serializable;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Cloud.*;
 
 /**
  * 云开发相关接口实现类.
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java
index 5835f998a..37265cfe5 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java
@@ -1,5 +1,20 @@
 package cn.binarywang.wx.miniapp.api.impl;
 
+import cn.binarywang.wx.miniapp.api.WxMaCodeService;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.code.*;
+import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
+import com.google.gson.JsonObject;
+import com.google.gson.reflect.TypeToken;
+import lombok.RequiredArgsConstructor;
+import me.chanjar.weixin.common.error.WxError;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.common.util.http.BaseMediaDownloadRequestExecutor;
+import me.chanjar.weixin.common.util.http.RequestExecutor;
+import me.chanjar.weixin.common.util.json.GsonHelper;
+import me.chanjar.weixin.common.util.json.GsonParser;
+import org.apache.commons.lang3.StringUtils;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URLEncoder;
@@ -8,26 +23,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
 
-import lombok.AllArgsConstructor;
-import lombok.RequiredArgsConstructor;
-import me.chanjar.weixin.common.util.json.GsonParser;
-import org.apache.commons.lang3.StringUtils;
-
-import cn.binarywang.wx.miniapp.api.WxMaCodeService;
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCategory;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeAuditStatus;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeCommitRequest;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeSubmitAuditRequest;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeVersionDistribution;
-import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
-import com.google.gson.JsonObject;
-import com.google.gson.reflect.TypeToken;
-import me.chanjar.weixin.common.error.WxError;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.util.http.BaseMediaDownloadRequestExecutor;
-import me.chanjar.weixin.common.util.http.RequestExecutor;
-import me.chanjar.weixin.common.util.json.GsonHelper;
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Code.*;
 
 /**
  * @author Charming
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaExpressServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaExpressServiceImpl.java
index c67e1bdac..17568c9e8 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaExpressServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaExpressServiceImpl.java
@@ -16,6 +16,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Express.*;
+
 /**
  * @author xiaoyu
  * @since 2019-11-26
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaImgProcServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaImgProcServiceImpl.java
index 4bdb06167..1ed94fe4d 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaImgProcServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaImgProcServiceImpl.java
@@ -2,12 +2,12 @@ package cn.binarywang.wx.miniapp.api.impl;
 
 import cn.binarywang.wx.miniapp.api.WxMaService;
 import lombok.RequiredArgsConstructor;
-import me.chanjar.weixin.common.service.WxImgProcService;
 import me.chanjar.weixin.common.bean.imgproc.WxImgProcAiCropResult;
 import me.chanjar.weixin.common.bean.imgproc.WxImgProcQrCodeResult;
 import me.chanjar.weixin.common.bean.imgproc.WxImgProcSuperResolutionResult;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.requestexecuter.ocr.OcrDiscernRequestExecutor;
+import me.chanjar.weixin.common.service.WxImgProcService;
 import org.apache.commons.lang3.StringUtils;
 
 import java.io.File;
@@ -15,6 +15,8 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.ImgProc.*;
+
 
 /**
  * 图像处理接口实现.
@@ -23,35 +25,6 @@ import java.nio.charset.StandardCharsets;
  */
 @RequiredArgsConstructor
 public class WxMaImgProcServiceImpl implements WxImgProcService {
-  /**
-   * 二维码/条码识别
-   */
-  private static final String QRCODE = "/cv/img/qrcode?img_url=%s";
-
-  /**
-   * 二维码/条码识别(文件)
-   */
-  private static final String FILE_QRCODE = "/cv/img/qrcode";
-
-  /**
-   * 图片高清化
-   */
-  private static final String SUPER_RESOLUTION = "/cv/img/superresolution?img_url=%s";
-
-  /**
-   * 图片高清化(文件)
-   */
-  private static final String FILE_SUPER_RESOLUTION = "/cv/img/superresolution";
-
-  /**
-   * 图片智能裁剪
-   */
-  private static final String AI_CROP = "/cv/img/aicrop?img_url=%s&ratios=%s";
-
-  /**
-   * 图片智能裁剪(文件)
-   */
-  private static final String FILE_AI_CROP = "/cv/img/aicrop?ratios=%s";
   private final WxMaService service;
 
   @Override
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaJsapiServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaJsapiServiceImpl.java
index dccef729b..15e4af61b 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaJsapiServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaJsapiServiceImpl.java
@@ -12,6 +12,8 @@ import me.chanjar.weixin.common.util.json.GsonParser;
 
 import java.util.concurrent.locks.Lock;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Jsapi.GET_JSAPI_TICKET_URL;
+
 /**
  * 
  *  Created by BinaryWang on 2018/8/5.
@@ -30,7 +32,6 @@ public class WxMaJsapiServiceImpl implements WxMaJsapiService {
 
   @Override
   public String getCardApiTicket(boolean forceRefresh) throws WxErrorException {
-
     if (forceRefresh) {
       this.service.getWxMaConfig().expireCardApiTicket();
     }
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java
index 44807e23a..da2fff572 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java
@@ -9,7 +9,6 @@ import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableMap;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
-import lombok.AllArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.util.json.GsonParser;
@@ -19,6 +18,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.LiveGoods.*;
+
 /**
  * 
  *  Created by lipengjun on 2020/6/29.
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java
index 54231086a..9040957c7 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java
@@ -6,7 +6,6 @@ import cn.binarywang.wx.miniapp.bean.live.*;
 import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
 import com.google.common.base.Joiner;
 import com.google.gson.JsonObject;
-import lombok.AllArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.enums.WxType;
@@ -19,6 +18,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Live.*;
+
 /**
  * 
  *  Created by yjwang on 2020/4/5.
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMediaServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMediaServiceImpl.java
index f1abc5af0..d362d0183 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMediaServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMediaServiceImpl.java
@@ -2,7 +2,6 @@ package cn.binarywang.wx.miniapp.api.impl;
 
 import cn.binarywang.wx.miniapp.api.WxMaMediaService;
 import cn.binarywang.wx.miniapp.api.WxMaService;
-import lombok.AllArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
 import me.chanjar.weixin.common.error.WxError;
@@ -18,6 +17,9 @@ import java.io.InputStream;
 import java.nio.file.Files;
 import java.util.UUID;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Media.MEDIA_GET_URL;
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Media.MEDIA_UPLOAD_URL;
+
 /**
  * @author Binary Wang
  */
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMsgServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMsgServiceImpl.java
index 056fdeeff..b000afeea 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMsgServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMsgServiceImpl.java
@@ -2,17 +2,21 @@ package cn.binarywang.wx.miniapp.api.impl;
 
 import cn.binarywang.wx.miniapp.api.WxMaMsgService;
 import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.bean.*;
+import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
+import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
+import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage;
+import cn.binarywang.wx.miniapp.bean.WxMaUpdatableMsg;
 import cn.binarywang.wx.miniapp.constant.WxMaConstants;
 import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
 import com.google.gson.JsonObject;
-import lombok.AllArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import me.chanjar.weixin.common.enums.WxType;
 import me.chanjar.weixin.common.error.WxError;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.util.json.GsonParser;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Msg.*;
+
 /**
  * @author Binary Wang
  */
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaOcrServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaOcrServiceImpl.java
index 6515c1c86..66668e004 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaOcrServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaOcrServiceImpl.java
@@ -2,16 +2,18 @@ package cn.binarywang.wx.miniapp.api.impl;
 
 import cn.binarywang.wx.miniapp.api.WxMaService;
 import lombok.RequiredArgsConstructor;
-import me.chanjar.weixin.common.service.WxOcrService;
 import me.chanjar.weixin.common.bean.ocr.*;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.requestexecuter.ocr.OcrDiscernRequestExecutor;
+import me.chanjar.weixin.common.service.WxOcrService;
 
 import java.io.File;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Ocr.*;
+
 /**
  * ocr 接口实现.
  *
@@ -20,18 +22,6 @@ import java.nio.charset.StandardCharsets;
  */
 @RequiredArgsConstructor
 public class WxMaOcrServiceImpl implements WxOcrService {
-  private static final String IDCARD = "https://api.weixin.qq.com/cv/ocr/idcard?img_url=%s";
-  private static final String FILEIDCARD = "https://api.weixin.qq.com/cv/ocr/idcard";
-  private static final String BANK_CARD = "https://api.weixin.qq.com/cv/ocr/bankcard?img_url=%s";
-  private static final String FILE_BANK_CARD = "https://api.weixin.qq.com/cv/ocr/bankcard";
-  private static final String DRIVING = "https://api.weixin.qq.com/cv/ocr/driving?img_url=%s";
-  private static final String FILE_DRIVING = "https://api.weixin.qq.com/cv/ocr/driving";
-  private static final String DRIVING_LICENSE = "https://api.weixin.qq.com/cv/ocr/drivinglicense?img_url=%s";
-  private static final String FILE_DRIVING_LICENSE = "https://api.weixin.qq.com/cv/ocr/drivinglicense";
-  private static final String BIZ_LICENSE = "https://api.weixin.qq.com/cv/ocr/bizlicense?img_url=%s";
-  private static final String FILE_BIZ_LICENSE = "https://api.weixin.qq.com/cv/ocr/bizlicense";
-  private static final String COMM = "https://api.weixin.qq.com/cv/ocr/comm?img_url=%s";
-  private static final String FILE_COMM = "https://api.weixin.qq.com/cv/ocr/comm";
 
   private final WxMaService service;
 
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaPluginServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaPluginServiceImpl.java
index f27d71370..48a4ee13d 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaPluginServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaPluginServiceImpl.java
@@ -10,6 +10,8 @@ import me.chanjar.weixin.common.error.WxErrorException;
 
 import java.util.Map;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Plugin.PLUGIN_URL;
+
 @AllArgsConstructor
 public class WxMaPluginServiceImpl implements WxMaPluginService {
   private final WxMaService service;
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaQrcodeServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaQrcodeServiceImpl.java
index 038a56c16..31bba36a3 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaQrcodeServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaQrcodeServiceImpl.java
@@ -8,12 +8,13 @@ import cn.binarywang.wx.miniapp.bean.WxaCode;
 import cn.binarywang.wx.miniapp.bean.WxaCodeUnlimit;
 import cn.binarywang.wx.miniapp.executor.QrcodeBytesRequestExecutor;
 import cn.binarywang.wx.miniapp.executor.QrcodeRequestExecutor;
-import lombok.AllArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import me.chanjar.weixin.common.error.WxErrorException;
 
 import java.io.File;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Qrcode.*;
+
 /**
  * @author Binary Wang
  */
@@ -23,12 +24,14 @@ public class WxMaQrcodeServiceImpl implements WxMaQrcodeService {
 
   @Override
   public byte[] createQrcodeBytes(String path, int width) throws WxErrorException {
-    return this.service.execute(QrcodeBytesRequestExecutor.create(this.service.getRequestHttp()), CREATE_QRCODE_URL, new WxMaQrcode(path, width));
+    return this.service.execute(QrcodeBytesRequestExecutor.create(this.service.getRequestHttp()), CREATE_QRCODE_URL,
+      new WxMaQrcode(path, width));
   }
 
   @Override
   public File createQrcode(String path, int width) throws WxErrorException {
-    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp()), CREATE_QRCODE_URL, new WxMaQrcode(path, width));
+    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp()), CREATE_QRCODE_URL,
+      new WxMaQrcode(path, width));
   }
 
   @Override
@@ -39,25 +42,27 @@ public class WxMaQrcodeServiceImpl implements WxMaQrcodeService {
   @Override
   public byte[] createWxaCodeBytes(String path, int width, boolean autoColor, WxMaCodeLineColor lineColor, boolean isHyaline)
     throws WxErrorException {
-    return this.service.execute(QrcodeBytesRequestExecutor.create(this.service.getRequestHttp()), GET_WXACODE_URL, WxaCode.builder()
-      .path(path)
-      .width(width)
-      .autoColor(autoColor)
-      .lineColor(lineColor)
-      .isHyaline(isHyaline)
-      .build());
+    return this.service.execute(QrcodeBytesRequestExecutor.create(this.service.getRequestHttp()), GET_WXACODE_URL,
+      WxaCode.builder()
+        .path(path)
+        .width(width)
+        .autoColor(autoColor)
+        .lineColor(lineColor)
+        .isHyaline(isHyaline)
+        .build());
   }
 
   @Override
   public File createWxaCode(String path, int width, boolean autoColor, WxMaCodeLineColor lineColor, boolean isHyaline)
     throws WxErrorException {
-    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp()), GET_WXACODE_URL, WxaCode.builder()
-      .path(path)
-      .width(width)
-      .autoColor(autoColor)
-      .lineColor(lineColor)
-      .isHyaline(isHyaline)
-      .build());
+    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp()), GET_WXACODE_URL,
+      WxaCode.builder()
+        .path(path)
+        .width(width)
+        .autoColor(autoColor)
+        .lineColor(lineColor)
+        .isHyaline(isHyaline)
+        .build());
   }
 
   @Override
@@ -74,16 +79,14 @@ public class WxMaQrcodeServiceImpl implements WxMaQrcodeService {
   public byte[] createWxaCodeUnlimitBytes(String scene, String page, int width, boolean autoColor,
                                           WxMaCodeLineColor lineColor, boolean isHyaline) throws WxErrorException {
     return this.service.execute(QrcodeBytesRequestExecutor.create(this.service.getRequestHttp()),
-      GET_WXACODE_UNLIMIT_URL,
-      this.buildWxaCodeUnlimit(scene, page, width, autoColor, lineColor, isHyaline));
+      GET_WXACODE_UNLIMIT_URL, this.buildWxaCodeUnlimit(scene, page, width, autoColor, lineColor, isHyaline));
   }
 
   @Override
   public File createWxaCodeUnlimit(String scene, String page, int width, boolean autoColor,
                                    WxMaCodeLineColor lineColor, boolean isHyaline) throws WxErrorException {
     return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp()),
-      GET_WXACODE_UNLIMIT_URL,
-      this.buildWxaCodeUnlimit(scene, page, width, autoColor, lineColor, isHyaline));
+      GET_WXACODE_UNLIMIT_URL, this.buildWxaCodeUnlimit(scene, page, width, autoColor, lineColor, isHyaline));
   }
 
   private WxaCodeUnlimit buildWxaCodeUnlimit(String scene, String page, int width, boolean autoColor,
@@ -106,7 +109,8 @@ public class WxMaQrcodeServiceImpl implements WxMaQrcodeService {
 
   @Override
   public File createQrcode(String path, int width, String filePath) throws WxErrorException {
-    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp(), filePath), CREATE_QRCODE_URL, new WxMaQrcode(path, width));
+    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp(), filePath),
+      CREATE_QRCODE_URL, new WxMaQrcode(path, width));
   }
 
   @Override
@@ -115,15 +119,17 @@ public class WxMaQrcodeServiceImpl implements WxMaQrcodeService {
   }
 
   @Override
-  public File createWxaCode(String path, int width, String filePath, boolean autoColor, WxMaCodeLineColor lineColor, boolean isHyaline)
+  public File createWxaCode(String path, int width, String filePath, boolean autoColor, WxMaCodeLineColor lineColor,
+                            boolean isHyaline)
     throws WxErrorException {
-    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp(), filePath), GET_WXACODE_URL, WxaCode.builder()
-      .path(path)
-      .width(width)
-      .autoColor(autoColor)
-      .lineColor(lineColor)
-      .isHyaline(isHyaline)
-      .build());
+    return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp(), filePath), GET_WXACODE_URL,
+      WxaCode.builder()
+        .path(path)
+        .width(width)
+        .autoColor(autoColor)
+        .lineColor(lineColor)
+        .isHyaline(isHyaline)
+        .build());
   }
 
   @Override
@@ -140,8 +146,7 @@ public class WxMaQrcodeServiceImpl implements WxMaQrcodeService {
   public File createWxaCodeUnlimit(String scene, String page, String filePath, int width, boolean autoColor,
                                    WxMaCodeLineColor lineColor, boolean isHyaline) throws WxErrorException {
     return this.service.execute(QrcodeRequestExecutor.create(this.service.getRequestHttp(), filePath),
-      GET_WXACODE_UNLIMIT_URL,
-      this.buildWxaCodeUnlimit(scene, page, width, autoColor, lineColor, isHyaline));
+      GET_WXACODE_UNLIMIT_URL, this.buildWxaCodeUnlimit(scene, page, width, autoColor, lineColor, isHyaline));
   }
 
   @Override
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaRunServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaRunServiceImpl.java
index 72f23873f..b7f5d22d6 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaRunServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaRunServiceImpl.java
@@ -1,14 +1,13 @@
 package cn.binarywang.wx.miniapp.api.impl;
 
-import java.util.List;
-
 import cn.binarywang.wx.miniapp.api.WxMaRunService;
 import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.binarywang.wx.miniapp.bean.WxMaRunStepInfo;
 import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils;
-import lombok.AllArgsConstructor;
 import lombok.RequiredArgsConstructor;
 
+import java.util.List;
+
 /**
  * 
  * Created by Binary Wang on 2018/11/4.
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSchemeServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSchemeServiceImpl.java
index e4562c483..149552dde 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSchemeServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSchemeServiceImpl.java
@@ -10,6 +10,8 @@ import me.chanjar.weixin.common.error.WxError;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.util.json.GsonParser;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Scheme.GENERATE_SCHEME_URL;
+
 /**
  * @author : cofedream
  * @date : 2021-01-28
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSecCheckServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSecCheckServiceImpl.java
index ccaa70305..fbff2f320 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSecCheckServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSecCheckServiceImpl.java
@@ -15,6 +15,8 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.SecCheck.*;
+
 /**
  * 
  *
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSettingServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSettingServiceImpl.java
index 476a24a56..d40164f8f 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSettingServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSettingServiceImpl.java
@@ -10,6 +10,8 @@ import me.chanjar.weixin.common.error.WxErrorException;
 import java.util.HashMap;
 import java.util.Map;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Setting.*;
+
 /**
  * @author Charming
  * @since 2018-04-27 15:46
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImpl.java
index 47bea67a3..55847caae 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImpl.java
@@ -23,6 +23,8 @@ import org.apache.commons.lang3.StringUtils;
 import java.io.Serializable;
 import java.util.List;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Subscribe.*;
+
 /**
  * @author Binary Wang
  * @date 2019-12-15
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaUserServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaUserServiceImpl.java
index ff731d94f..97c2d196a 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaUserServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaUserServiceImpl.java
@@ -16,6 +16,8 @@ import org.apache.commons.codec.digest.DigestUtils;
 
 import java.util.Map;
 
+import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.User.SET_USER_STORAGE;
+
 /**
  * @author Binary Wang
  */
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java
new file mode 100644
index 000000000..49f6a18db
--- /dev/null
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java
@@ -0,0 +1,281 @@
+package cn.binarywang.wx.miniapp.constant;
+
+import lombok.experimental.UtilityClass;
+
+/**
+ * 小程序接口地址常量.
+ *
+ * @author Binary Wang
+ * @date 2021-01-28
+ */
+@UtilityClass
+public class WxMaApiUrlConstants {
+  public interface Analysis {
+    String GET_DAILY_SUMMARY_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiddailysummarytrend";
+    String GET_DAILY_VISIT_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend";
+    String GET_WEEKLY_VISIT_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidweeklyvisittrend";
+    String GET_MONTHLY_VISIT_TREND_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidmonthlyvisittrend";
+    String GET_VISIT_DISTRIBUTION_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidvisitdistribution";
+    String GET_DAILY_RETAIN_INFO_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiddailyretaininfo";
+    String GET_WEEKLY_RETAIN_INFO_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidweeklyretaininfo";
+    String GET_MONTHLY_RETAIN_INFO_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidmonthlyretaininfo";
+    String GET_VISIT_PAGE_URL = "https://api.weixin.qq.com/datacube/getweanalysisappidvisitpage";
+    String GET_USER_PORTRAIT_URL = "https://api.weixin.qq.com/datacube/getweanalysisappiduserportrait";
+  }
+
+  public interface Cloud {
+    String INVOKE_CLOUD_FUNCTION_URL = "https://api.weixin.qq.com/tcb/invokecloudfunction?env=%s&name=%s";
+    String DATABASE_COLLECTION_GET_URL = "https://api.weixin.qq.com/tcb/databasecollectionget";
+    String DATABASE_COLLECTION_DELETE_URL = "https://api.weixin.qq.com/tcb/databasecollectiondelete";
+    String DATABASE_COLLECTION_ADD_URL = "https://api.weixin.qq.com/tcb/databasecollectionadd";
+    String GET_QCLOUD_TOKEN_URL = "https://api.weixin.qq.com/tcb/getqcloudtoken";
+    String BATCH_DELETE_FILE_URL = "https://api.weixin.qq.com/tcb/batchdeletefile";
+    String BATCH_DOWNLOAD_FILE_URL = "https://api.weixin.qq.com/tcb/batchdownloadfile";
+    String UPLOAD_FILE_URL = "https://api.weixin.qq.com/tcb/uploadfile";
+    String DATABASE_MIGRATE_QUERY_INFO_URL = "https://api.weixin.qq.com/tcb/databasemigratequeryinfo";
+    String DATABASE_MIGRATE_EXPORT_URL = "https://api.weixin.qq.com/tcb/databasemigrateexport";
+    String DATABASE_MIGRATE_IMPORT_URL = "https://api.weixin.qq.com/tcb/databasemigrateimport";
+    String UPDATE_INDEX_URL = "https://api.weixin.qq.com/tcb/updateindex";
+    String DATABASE_COUNT_URL = "https://api.weixin.qq.com/tcb/databasecount";
+    String DATABASE_AGGREGATE_URL = "https://api.weixin.qq.com/tcb/databaseaggregate";
+    String DATABASE_QUERY_URL = "https://api.weixin.qq.com/tcb/databasequery";
+    String DATABASE_UPDATE_URL = "https://api.weixin.qq.com/tcb/databaseupdate";
+    String DATABASE_DELETE_URL = "https://api.weixin.qq.com/tcb/databasedelete";
+    String DATABASE_ADD_URL = "https://api.weixin.qq.com/tcb/databaseadd";
+  }
+
+  public interface Msg {
+    String KEFU_MESSAGE_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/custom/send";
+    String TEMPLATE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send";
+    String SUBSCRIBE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send";
+    String UNIFORM_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send";
+    String ACTIVITY_ID_CREATE_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/activityid/create";
+    String UPDATABLE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/updatablemsg/send";
+  }
+
+  public interface Code {
+    /**
+     * 为授权的小程序帐号上传小程序代码.
+     */
+    String COMMIT_URL = "https://api.weixin.qq.com/wxa/commit";
+    String GET_QRCODE_URL = "https://api.weixin.qq.com/wxa/get_qrcode";
+    String GET_CATEGORY_URL = "https://api.weixin.qq.com/wxa/get_category";
+    String GET_PAGE_URL = "https://api.weixin.qq.com/wxa/get_page";
+    String SUBMIT_AUDIT_URL = "https://api.weixin.qq.com/wxa/submit_audit";
+    String GET_AUDIT_STATUS_URL = "https://api.weixin.qq.com/wxa/get_auditstatus";
+    String GET_LATEST_AUDIT_STATUS_URL = "https://api.weixin.qq.com/wxa/get_latest_auditstatus";
+    String RELEASE_URL = "https://api.weixin.qq.com/wxa/release";
+    String CHANGE_VISIT_STATUS_URL = "https://api.weixin.qq.com/wxa/change_visitstatus";
+    String REVERT_CODE_RELEASE_URL = "https://api.weixin.qq.com/wxa/revertcoderelease";
+    String GET_SUPPORT_VERSION_URL = "https://api.weixin.qq.com/cgi-bin/wxopen/getweappsupportversion";
+    String SET_SUPPORT_VERSION_URL = "https://api.weixin.qq.com/cgi-bin/wxopen/setweappsupportversion";
+    String UNDO_CODE_AUDIT_URL = "https://api.weixin.qq.com/wxa/undocodeaudit";
+  }
+
+  public interface Express {
+    /**
+     * 获取支持的快递公司列表
+     */
+    String ALL_DELIVERY_URL = "https://api.weixin.qq.com/cgi-bin/express/business/delivery/getall";
+    /**
+     * 获取所有绑定的物流账号
+     */
+    String ALL_ACCOUNT_URL = "https://api.weixin.qq.com/cgi-bin/express/business/account/getall";
+    /**
+     * 绑定、解绑物流账号
+     */
+    String BIND_ACCOUNT_URL = "https://api.weixin.qq.com/cgi-bin/express/business/account/bind";
+    /**
+     * 获取电子面单余额
+     */
+    String GET_QUOTA_URL = "https://api.weixin.qq.com/cgi-bin/express/business/quota/get";
+    /**
+     * 配置面单打印员
+     */
+    String UPDATE_PRINTER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/printer/update";
+    /**
+     * 获取打印员
+     */
+    String GET_PRINTER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/printer/getall";
+    /**
+     * 生成运单
+     */
+    String ADD_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/add";
+    /**
+     * 批量获取运单数据
+     */
+    String BATCH_GET_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/batchget";
+    /**
+     * 取消运单
+     */
+    String CANCEL_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/cancel";
+    /**
+     * 获取运单数据
+     */
+    String GET_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/order/get";
+    /**
+     * 查询运单轨迹
+     */
+    String GET_PATH_URL = "https://api.weixin.qq.com/cgi-bin/express/business/path/get";
+    /**
+     * 模拟快递公司更新订单状态
+     */
+    String TEST_UPDATE_ORDER_URL = "https://api.weixin.qq.com/cgi-bin/express/business/test_update_order";
+  }
+
+  public interface ImgProc {
+    /**
+     * 二维码/条码识别
+     */
+    String QRCODE = "https://api.weixin.qq.com/cv/img/qrcode?img_url=%s";
+    /**
+     * 二维码/条码识别(文件)
+     */
+    String FILE_QRCODE = "https://api.weixin.qq.com/cv/img/qrcode";
+    /**
+     * 图片高清化
+     */
+    String SUPER_RESOLUTION = "https://api.weixin.qq.com/cv/img/superresolution?img_url=%s";
+    /**
+     * 图片高清化(文件)
+     */
+    String FILE_SUPER_RESOLUTION = "https://api.weixin.qq.com/cv/img/superresolution";
+    /**
+     * 图片智能裁剪
+     */
+    String AI_CROP = "https://api.weixin.qq.com/cv/img/aicrop?img_url=%s&ratios=%s";
+    /**
+     * 图片智能裁剪(文件)
+     */
+    String FILE_AI_CROP = "https://api.weixin.qq.com/cv/img/aicrop?ratios=%s";
+  }
+
+  public interface Jsapi {
+    /**
+     * 获得jsapi_ticket的url
+     */
+    String GET_JSAPI_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket";
+  }
+
+  public interface LiveGoods {
+    String ADD_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/add";
+    String RESET_AUDIT_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/resetaudit";
+    String AUDIT_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/audit";
+    String DELETE_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/delete";
+    String UPDATE_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/update";
+    String GET_GOODS_WARE_HOUSE = "https://api.weixin.qq.com/wxa/business/getgoodswarehouse";
+    String GET_APPROVED_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/goods/getapproved";
+  }
+
+  public interface Live {
+    String GET_LIVE_INFO = "https://api.weixin.qq.com/wxa/business/getliveinfo";
+    String CREATE_ROOM = "https://api.weixin.qq.com/wxaapi/broadcast/room/create";
+    String ADD_GOODS = "https://api.weixin.qq.com/wxaapi/broadcast/room/addgoods";
+    String DELETE_ROOM = "https://api.weixin.qq.com/wxaapi/broadcast/room/deleteroom";
+    String EDIT_ROOM = "https://api.weixin.qq.com/wxaapi/broadcast/room/editroom";
+    String GET_PUSH_URL = "https://api.weixin.qq.com/wxaapi/broadcast/room/getpushurl";
+    String GET_SHARED_CODE = "https://api.weixin.qq.com/wxaapi/broadcast/room/getsharedcode";
+    String ADD_ASSISTANT = "https://api.weixin.qq.com/wxaapi/broadcast/room/addassistant";
+    String MODIFY_ASSISTANT = "https://api.weixin.qq.com/wxaapi/broadcast/room/modifyassistant";
+    String REMOVE_ASSISTANT = "https://api.weixin.qq.com/wxaapi/broadcast/room/removeassistant";
+    String GET_ASSISTANT_LIST = "https://api.weixin.qq.com/wxaapi/broadcast/room/getassistantlist";
+  }
+
+  public interface Media {
+    String MEDIA_UPLOAD_URL = "https://api.weixin.qq.com/cgi-bin/media/upload?type=%s";
+    String MEDIA_GET_URL = "https://api.weixin.qq.com/cgi-bin/media/get";
+  }
+
+  public interface Plugin {
+    String PLUGIN_URL = "https://api.weixin.qq.com/wxa/plugin";
+  }
+
+  public interface Qrcode {
+    String CREATE_QRCODE_URL = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode";
+    String GET_WXACODE_URL = "https://api.weixin.qq.com/wxa/getwxacode";
+    String GET_WXACODE_UNLIMIT_URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit";
+  }
+
+  public interface Run {
+
+  }
+
+  public interface Scheme {
+    String GENERATE_SCHEME_URL = "https://api.weixin.qq.com/wxa/generatescheme";
+  }
+
+  public interface SecCheck {
+    String IMG_SEC_CHECK_URL = "https://api.weixin.qq.com/wxa/img_sec_check";
+    String MSG_SEC_CHECK_URL = "https://api.weixin.qq.com/wxa/msg_sec_check";
+    String MEDIA_CHECK_ASYNC_URL = "https://api.weixin.qq.com/wxa/media_check_async";
+  }
+
+  public interface Setting {
+    /**
+     * 修改服务器地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1489138143_WPbOO&token=&lang=zh_CN
+     * access_token 为 authorizer_access_token
+     */
+    String MODIFY_DOMAIN_URL = "https://api.weixin.qq.com/wxa/modify_domain";
+    String SET_WEB_VIEW_DOMAIN_URL = "https://api.weixin.qq.com/wxa/setwebviewdomain";
+    /**
+     * 小程序成员管理:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1489140588_nVUgx&token=&lang=zh_CN
+     * access_token 为 authorizer_access_token
+     */
+    String BIND_TESTER_URL = "https://api.weixin.qq.com/wxa/bind_tester";
+    String UNBIND_TESTER_URL = "https://api.weixin.qq.com/wxa/unbind_tester";
+  }
+
+  public interface Share {
+
+  }
+
+  public interface Subscribe {
+    /**
+     * 获取模板标题下的关键词列表.
+     */
+    String GET_PUB_TEMPLATE_TITLE_LIST_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatetitles";
+    /**
+     * 获取模板标题下的关键词列表.
+     */
+    String GET_PUB_TEMPLATE_KEY_WORDS_BY_ID_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatekeywords";
+    /**
+     * 组合模板并添加至帐号下的个人模板库.
+     */
+    String TEMPLATE_ADD_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate";
+    /**
+     * 获取当前帐号下的个人模板列表.
+     */
+    String TEMPLATE_LIST_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate";
+    /**
+     * 删除帐号下的某个模板.
+     */
+    String TEMPLATE_DEL_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/deltemplate";
+    /**
+     * 获取小程序账号的类目
+     */
+    String GET_CATEGORY_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getcategory";
+    /**
+     * 发送订阅消息
+     */
+    String SUBSCRIBE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send";
+  }
+
+  public interface User {
+    String SET_USER_STORAGE = "https://api.weixin.qq.com/wxa/set_user_storage?appid=%s&signature=%s&openid=%s&sig_method=%s";
+  }
+
+  public interface Ocr {
+    String IDCARD = "https://api.weixin.qq.com/cv/ocr/idcard?img_url=%s";
+    String FILEIDCARD = "https://api.weixin.qq.com/cv/ocr/idcard";
+    String BANK_CARD = "https://api.weixin.qq.com/cv/ocr/bankcard?img_url=%s";
+    String FILE_BANK_CARD = "https://api.weixin.qq.com/cv/ocr/bankcard";
+    String DRIVING = "https://api.weixin.qq.com/cv/ocr/driving?img_url=%s";
+    String FILE_DRIVING = "https://api.weixin.qq.com/cv/ocr/driving";
+    String DRIVING_LICENSE = "https://api.weixin.qq.com/cv/ocr/drivinglicense?img_url=%s";
+    String FILE_DRIVING_LICENSE = "https://api.weixin.qq.com/cv/ocr/drivinglicense";
+    String BIZ_LICENSE = "https://api.weixin.qq.com/cv/ocr/bizlicense?img_url=%s";
+    String FILE_BIZ_LICENSE = "https://api.weixin.qq.com/cv/ocr/bizlicense";
+    String COMM = "https://api.weixin.qq.com/cv/ocr/comm?img_url=%s";
+    String FILE_COMM = "https://api.weixin.qq.com/cv/ocr/comm";
+  }
+}