# ShererUtils **Repository Path**: Sherer/ShererUtils ## Basic Information - **Project Name**: ShererUtils - **Description**: Java 常用库 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-02-02 - **Last Updated**: 2025-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Sherer Utils 闪燃常用工具库 ## 工具类列表 ### 数组工具类 `ArrayUtils` - 拼接数组 `joinArray` - `String joinArray(int[] array, String string)` - `String joinArray(long[] array, String string)` - `String joinArray(Object[] array, String string)` - 转换int数组 `toIntArray` - `int[] toIntArray(List array)` - `int[] toIntArray(Object[] array)` ### 剪贴板工具类 `ClipboardUtils` - 设置剪贴板内容 `setClipboard` - `void setClipboard(String content)` ### 通用工具类 `CommonUtils` - 获取UUID `getUUID` - `String getUUID()` - `String getUUID(String separate)` - 校验IPv4地址的合法性 `checkIp4` - `boolean checkIp4(String ipAddr)` - 校验IPv6地址的合法性 `checkIp6` - `boolean checkIp6(String ipAddr)` ### 日期工具类 `DateUtils` - 常量 - `FORMAT_TIME` HH:mm:ss - `FORMAT_DATE` yyyy-MM-dd - `FORMAT_LONG_DATE` yyyy-MM-dd HH:mm:ss - `FORMAT_LONG_DATE_TIME` yyyy-MM-dd HH:mm:ss.SSS - 转换时间类型 `CDate` - `Date CDate(String dateString)` - 获取当前时间 `getToday` - `String getToday()` - `String getToday(String format)` - 获取昨天时间 `getYesterday` - `String getYesterday()` - `String getYesterday(String format)` - 获取日历对象 `getCalendar` - `Calendar getCalendar()` - `Calendar getCalendar(Date date)` - `Calendar getCalendar(String dateString)` - 获取时间对象 `getDate` - `Date getDate()` - `Date getDate(String dateString)` - 格式化时间 `format` - `String format(String format)` - `String format(String format, Date date)` - 获取当前时间戳 `getTimestamp` - `long getTimestamp()` - 获取当前时间戳(秒)`getTimestampSec` - `long getTimestampSec()` ### 文件工具类 `FileUtils` - 获取文件全名 `getFileFullName` - `String getFileFullName(String path)` - 获取文件扩展名 `getFileExtension` - `String getFileExtension(String path)` - 获取文件名 `getFileName` - `String getFileName(String path)` - 获取文件目录 `getFileDirectoryName` - `String getFileDirectoryName(String path)` - 读取所有文本内容 `readAllText` - `String readAllText(String path)` - 创建文件 `createFile` - `File createFile(String url, String path)` - `File createFile(String url, File file)` - `File createFile(byte[] bytes, String path)` - `File createFile(byte[] bytes, File file)` ### Json工具类 `JsonUtils` - 转换Json数组 `toArray` - `JSONArray toArray(Object object)` - 转换Json对象 `toObject` - `JSONObject toObject(Object object)` - 获取子对象 `getObject` - `Object getObject(Object object, String key)` - 获取子Json对象 `getJsonObject` - `JSONObject getJsonObject(Object object, String key)` - 获取子Json数组 `getJsonArray` - `JSONArray getJsonArray(Object object, String key)` - 移除Json对象键 `removeObjectKeys` - `JSONObject removeObjectKeys(Object object, String... keys)` - 移除Json数组键 `removeArrayKeys` - `JSONArray removeArrayKeys(Object object, String... keys)` - 移除Json对象的例外键 `removeObjectKeysWithout` - `JSONObject removeObjectKeysWithout(Object object, String... keys)` - 移除Json数组的例外键 `removeArrayKeysWithout` - `JSONArray removeArrayKeysWithout(Object object, String... keys)` - 转换int数组 `toIntArray` - `int[] toIntArray(JSONArray array)` - 拼接Json数组 `concat` - `JSONArray concat(JSONArray... arrays)` ### 日志工具类 `LogUtils` - 初始化 - `LogUtils()` - `LogUtils(HttpServletRequest request)` - `LogUtils(ServletContext context)` - `LogUtils(HttpServletRequest request, String name)` - `LogUtils(ServletContext context, String name)` - `LogUtils(HttpServletRequest request, Level outLevel)` - `LogUtils(ServletContext context, Level outLevel)` - `LogUtils(HttpServletRequest request, String name, Level outLevel)` - `LogUtils(ServletContext context, String name, Level outLevel)` - `LogUtils(HttpServletRequest request, String folder, String name)` - `LogUtils(ServletContext context, String folder, String name)` - `LogUtils(HttpServletRequest request, String folder, String name, Level outLevel)` - `LogUtils(ServletContext context, String folder, String name, Level outLevel)` - `LogUtils(HttpServletRequest request, String root, String folder, String name, Level outLevel)` - `LogUtils(ServletContext context, String root, String folder, String name, Level outLevel)` - `LogUtils(String path, String folder, String name, Level outLevel)` - 路径属性 `path` - `String getPath()` - `void setPath(String path)` - 目录属性 `folder` - `String getFolder()` - `void setFolder(String folder)` - 类名属性 `name` - `String getName()` - `void setName(String name)` - 输出级别属性 `outLevel` - `Level getOutLevel()` - `void setOutLevel(Level outLevel)` - 写调试日志 `info` - `void info(String msg)` - `void info(String name, String msg)` - `void info(String name, String msg, Level outLevel)` - `void info(String name, String msg, String path)` - `void info(String name, String msg, String path, Level outLevel)` - 写警告日志 `warn` - `void warn(String msg)` - `void warn(String name, String msg)` - `void warn(String name, String msg, Level outLevel)` - `void warn(String name, String msg, String path)` - `void warn(String name, String msg, String path, Level outLevel)` - 写错误日志 `error` - `void error(String msg)` - `void error(String msg, Throwable thrown)` - `void error(String name, String msg, Throwable thrown)` - `void error(String name, String msg, Throwable thrown, Level outLevel)` - `void error(String name, String msg, String path)` - `void error(String name, String msg, String path, Level outLevel)` - `void error(String name, String msg, Throwable thrown, String path, Level outLevel)` - 写日志 `write` - `void write(String name, Level level, String msg, Throwable thrown, String path, Level outLevel)` ### 运算工具类 `OperatorUtils` - 枚举 - `Operator {EQUAL, NOT_EQUAL, BIG, BIG_EQUAL, SMALL, SMALL_EQUAL}` - 逻辑运算符——或 `OR` - `boolean OR(Object source, Object... target)` - `boolean OR(Object source, Operator operator, Object... target)` - 逻辑运算符——与 `AND` - `boolean AND(Object source, Object... target)` - `boolean AND(Object source, Operator operator, Object... target)` ### 请求工具类 `RequestUtils` - 枚举 - `DataType {JSON, XML, UNKNOWN}` - 初始化 - `RequestUtils(HttpServletRequest request)` - `RequestUtils(HttpServletRequest request, Boolean includePostData)` - 获取所有参数 `get` - `Map get()` - 获取参数 `get` - `Object get(String key)` - `Object get(String key, Object defaultValue)` - 追加数据 `putAll` - `Map putAll(Map map)` - 追加数据 `put` - `Map put(String key, Object value)` - 获取所有 Header 参数 `getHeaders` - `Map getHeaders()` - 获取 Header 参数 `getHeader` - `String getHeader(String key)` - `String getHeader(String key, String defaultValue)` - 获取POST数据 `getPostData` - `String getPostData()` - `String getPostData(HttpServletRequest request)` - 获取 IP 地址 `getIpAddress` - `String getIpAddress()` - `String getIpAddress(HttpServletRequest request)` - 获取数据类型 `getDataType` - `DataType getDataType(String data)` ### 字符串工具类 `StringUtils` - 判断字符串是否为数字 `isNumeric` - `boolean isNumeric(String str)` - 判断字符串是否为整数 `isInteger` - `boolean isInteger(String str)` - `boolean isInteger(float num)` - 内容为空时返回默认内容 `isNull` - `String isNull(String source, String target)` - `Object isNull(Object source, Object target)` - ` T ifNull(T source, T target)` - `String isNull(String source, String isNull, String notNull)` - `Object isNull(Object source, Object isNull, Object notNull)` - ` T ifNull(Object source, T isNull, T notNull)` - 转换为Long类型 `toLong` - `long toLong(Object object)` - 转换为int类型 `toInt` - `int toInt(boolean bool)` - `int toInt(Object object)` - 转换为float类型 `toFloat` - `float toFloat(Object object)` - 转换为double类型 - `double toDouble(Object object)` - 按指定长度换行 `wrap` - `String wrap(String string, int lineLength)` - `String[] wrap(String text, FontMetrics metrics, int maxWidth)` - 按指定长度换行 `wrapLine` - `String wrapLine(String line, int lineLength)` - 判断字符串是否不包含指定的字符串 `notContains` - `boolean notContains(String source, CharSequence... cses)` - 判断字符串是否包含指定的字符串 `Contains` - `boolean Contains(String source, CharSequence... cses)` - 判断字符串是否不以指定的字符串结尾 `endsWith` - `boolean endsWith(String source, String... strings)` - MD5加密 `md5` - `String md5(String text)` - `String md5(String text, String key)` - MD5密文验证 `verify` - `boolean verify(String text, String md5)` - `boolean verify(String text, String key, String md5)` - sha1加密 `sha1` - `String sha1(String... texts)` - `String sha1(Boolean sort, String... texts)` - `String sha1(String text)` - `String sha1(String text, String encoding)` - 按字节获取指定长度的字符串内容 `getBytesContent` - `String getBytesContent(String content, int length)` - `String getBytesContent(String content, String encoding, int length)` - 判断语言 `getLanguage` - `String getLanguage(String str)` - 获取Base64编码 `getBase64Encode` - `String getBase64Encode(String str)` - 获取Base64解码 `getBase64Decode` - `String getBase64Decode(String str)` - 获取URL编码 `getUrlEncode` - `String getUrlEncode(String url)` - 获取URL解码 `getUrlDecode` - `String getUrlDecode(String url)` - 替换表情 `replaceAllEmoji` - `String replaceAllEmoji(String content, String replacement)` - 去除前后指定字符 `trim` - `String trim(String source, String beTrim)` - 分割字符串 `split` - `List split(String content, String spliter)` - 获取随机字符串 `getNonceStr` - `String getNonceStr()` - `String getNonceStr(int length)` ### 网络工具类 `WebUtils` - 枚举 - `Method {GET, POST, PUT, DELETE}` - 常量 - `GENERAL_AGENT` 通用用户代理 - `WECHAT_AGENT` 微信用户代理 - `DOUYIN_AGENT` 抖音用户代理 - `KUAISHOU_AGENT` 快手用户代理 - 向指定URL发送GET请求 `get` - `String get(String url)` - `byte[] getByte(String url)` - `String get(String url, String userAgent)` - `byte[] getByte(String url, String userAgent)` - `String get(String url, String userAgent, Map headers)` - `byte[] getByte(String url, String userAgent, Map headers)` - `String get(String url, String userAgent, Map headers, int timeout)` - `byte[] getByte(String url, String userAgent, Map headers, int timeout)` - 向指定URL发送POST请求 `post` - `String post(String url)` - `byte[] postByte(String url)` - `String post(String url, String parameter)` - `byte[] postByte(String url, String parameter)` - `String post(String url, String parameter, String userAgent)` - `byte[] postByte(String url, String parameter, String userAgent)` - `String post(String url, String parameter, String userAgent, Map headers)` - `byte[] postByte(String url, String parameter, String userAgent, Map headers)` - `String post(String url, String parameter, String userAgent, Map headers, int timeout)` - `byte[] postByte(String url, String parameter, String userAgent, Map headers, int timeout)` - 向指定URL发送请求 `request` - `String request(String url)` - `byte[] requestByte(String url)` - `String request(String url, Method method, String parameter)` - `byte[] requestByte(String url, Method method, String parameter)` - `String request(String url, Method method, String parameter, String userAgent)` - `byte[] requestByte(String url, Method method, String parameter, String userAgent)` - `String request(String url, Method method, String parameter, String userAgent, Map headers)` - `byte[] requestByte(String url, Method method, String parameter, String userAgent, Map headers)` - `String request(String url, Method method, String parameter, String userAgent, Map headers, int timeout)` - `byte[] requestByte(String url, Method method, String parameter, String userAgent, Map headers, int timeout)` - `String request(String url, File file)` - `String request(String url, File file, Map data)` - `String request(String url, File file, String userAgent)` - `String request(String url, File file, Map data, String userAgent)` - `String request(String url, File file, String userAgent, Map headers)` - `String request(String url, File file, Map data, String userAgent, Map headers)` - `String request(String url, File file, String userAgent, Map headers, int timeout)` - `String request(String url, File file, Map data, String userAgent, Map headers, int timeout)` - 转换为字符串 `getText` - `String getText(byte[] bytes)` - `String getText(InputStream stram)` - 转换为字节数组 `getBytes` - `byte[] getBytes(InputStream stram)` ### 微信工具类 `WeixinUtils` - 常量 - `TOKEN_URL` 接口调用凭据地址 - `WX_TOKEN_URL` 企业微信接口调用凭据地址 - `TICKET_URL` 调用微信JS接口的临时票据地址 - `WX_TICKET_URL` 企业微信调用微信JS接口的临时票据地址 - `LOGIN_URL` 登录地址(公众号、网站、APP) - `MP_LOGIN_URL` 登录地址(小程序) - `REFRESH_TOKEN_URL` 刷新令牌地址(公众号、网站、APP) - `USERINFO_URL` 用户信息地址(网站、APP) - `WEB_USERINFO_URL` 用户信息地址(公众号) - `USER_LIST_URL` 用户列表地址(公众号) - `WEB_CHANGE_OPENID_LIST_URL` 迁移openid列表地址(公众号) - `GET_USER_PHONE_NUMBER_URL` 获取用户手机号地址(小程序) - `GET_SUBSCRIBE_TEMPLATE_URL` 获取个人订阅消息模板列表地址 - `SEND_SUBSCRIBE_MESSAGE_URL` 发送订阅消息(公众号) - `MP_SEND_SUBSCRIBE_MESSAGE_URL` 发送订阅消息(小程序) - `SEND_CUSTOM_MESSAGE_URL` 发送客服消息地址(公众号) - `MP_SEND_CUSTOM_MESSAGE_URL` 发送客服消息地址(小程序) - `UPLOAD_MEDIA_URL` 上传临时素材地址(公众号) - `MP_UPLOAD_MEDIA_URL` 上传临时素材地址(小程序) - `WX_UPLOAD_MEDIA_URL` 上传临时素材地址(企业微信) - `UPLOAD_MATERIAL_URL` 上传永久地址素材(公众号) - `WX_KF_SYNC_MSG_URL` 企业微信读取消息地址 - `WX_KF_SEND_MSG_URL` 企业微信发送消息地址 - `WX_KF_SEND_MSG_ON_EVENT_URL` 企业微信发送特定事件消息地址 - `GET_WXA_CODE_URL` 获取小程序码地址 - `GET_UNLIMITED_WXA_CODE_URL` 获取不限制的小程序码地址 - `GET_WXA_QRCODE_URL` 获取小程序二维码地址 - 枚举 - `AppType {MP, WEB, H5, APP}` - `LangType {zh_CN, zh_TW, en}` - `CustomMessageType {text, image, voice, video, music, news, mpnews, mpnewsarticle, msgmenu, wxcard, miniprogrampage, link, file, miniprogram, location}` - `MediaType {image, voice, video, thumb, file}` - `MpVersion {develop, trial, release}` - 获取接口调用凭据 - `WxToken getAccessToken(String appid, String secret)` - `WxToken getWxAccessToken(String corpid, String corpsecret)` - 获取调用微信JS接口的临时票据 - `WxTicket getTicket(String token)` - `WxTicket getWxTicket(String token)` - 获取登录凭证 - `WxLogin getLogin(String appid, String secret, String code)` - `WxLogin getMPLogin(String appid, String secret, String code)` - `WxLogin getLogin(AppType type, String appid, String secret, String code)` - `WxLogin refreshLogin(String appid, String refreshToken)` - 获取用户信息 - `WxUser getUserInfo(String token, String openid)` - `WxUser getWebUserInfo(String token, String openid)` - `WxUser getUserInfo(String token, String openid, LangType lang)` - `WxUser getWebUserInfo(String token, String openid, LangType lang)` - `WxUser getUserInfo(AppType type, String token, String openid, LangType lang)` - 获取用户列表 - `WxUserOpenidResult getUserOpenidList(String token)` - `WxUserOpenidResult getUserOpenidList(String token, String next_openid)` - `WxChangeOpenidList getChangeOpenidList(String token, String from_appid, List openid_list)` - `WxChangeOpenidList getChangeOpenidList(String token, String from_appid, String... openid_list)` - 获取用户手机号 - `WxPhoneInfoResult getUserPhone(String token, String code)` - 订阅消息 - `WxSubscribeTemplateResult getSubscribeTemplateList(String token)` - `WxResult sendSubscribeMessage(String token, String data)` - `WxResult sendMPSubscribeMessage(String token, String data)` - `WxResult sendSubscribeMessage(AppType type, String token, String data)` - 客服消息 - `WxResult sendCustomMessage(AppType type, String token, String openid, CustomMessageType msgType, String data, String kf_account)` - `WxResult sendCustomMessage(AppType type, String token, String openid, CustomMessageType msgType, String data)` - `WxResult sendCustomImageMessage(AppType type, String token, String openid, String media_id, String kf_account)` - `WxResult sendCustomImageMessage(AppType type, String token, String openid, String media_id)` - `WxResult sendCustomTextMessage(AppType type, String token, String openid, String content, String kf_account)` - `WxResult sendCustomTextMessage(AppType type, String token, String openid, String content)` - `WxResult sendMPCustomMessage(String token, String openid, CustomMessageType msgType, String data, String kf_account)` - `WxResult sendMPCustomMessage(String token, String openid, CustomMessageType msgType, String data)` - `WxResult sendCustomMessage(String token, String openid, CustomMessageType msgType, String data, String kf_account)` - `WxResult sendCustomMessage(String token, String openid, CustomMessageType msgType, String data)` - `WxResult sendMPCustomMiniProgramMessage(String token, String openid, String title, String pagepath, String thumb_media_id, String kf_account)` - `WxResult sendMPCustomMiniProgramMessage(String token, String openid, String title, String pagepath, String thumb_media_id)` - `WxResult sendCustomMiniProgramMessage(String token, String openid, String title, String appid, String pagepath, String thumb_media_id, String kf_account)` - `WxResult sendCustomMiniProgramMessage(String token, String openid, String title, String appid, String pagepath, String thumb_media_id)` - `WxResult sendCustomWxCardMessage(String token, String openid, String card_id, String kf_account)` - `WxResult sendCustomWxCardMessage(String token, String openid, String card_id)` - `WxResult sendCustomMsgMenuMessage(String token, String openid, String head_content, String tail_content, String kf_account, WxCustomMsgMenuItem ...items)` - `WxResult sendCustomMsgMenuMessage(String token, String openid, String head_content, String tail_content, WxCustomMsgMenuItem ...items)` - `WxResult sendCustomMsgMenuMessage(String token, String openid, String head_content, String tail_content, List list, String kf_account)` - `WxResult sendCustomMsgMenuMessage(String token, String openid, String head_content, String tail_content, List list)` - `WxResult sendCustomMPNewsArticleMessage(String token, String openid, String article_id, String kf_account)` - `WxResult sendCustomMPNewsArticleMessage(String token, String openid, String article_id)` - `WxResult sendCustomMPNewsMessage(String token, String openid, String media_id, String kf_account)` - `WxResult sendCustomMPNewsMessage(String token, String openid, String media_id)` - `WxResult sendCustomNewsMessage(String token, String openid, String title, String description, String url, String picurl, String kf_account)` - `WxResult sendCustomNewsMessage(String token, String openid, String title, String description, String url, String picurl)` - `WxResult sendMPCustomLinkMessage(String token, String openid, String title, String description, String url, String thumb_url, String kf_account)` - `WxResult sendMPCustomLinkMessage(String token, String openid, String title, String description, String url, String thumb_url)` - `WxResult sendCustomMusicMessage(String token, String openid, String title, String description, String musicurl, String hqmusicurl, String thumb_media_id, String kf_account)` - `WxResult sendCustomMusicMessage(String token, String openid, String title, String description, String musicurl, String hqmusicurl, String thumb_media_id)` - `WxResult sendCustomVideoMessage(String token, String openid, String title, String description, String media_id, String thumb_media_id, String kf_account)` - `WxResult sendCustomVideoMessage(String token, String openid, String title, String description, String media_id, String thumb_media_id)` - `WxResult sendCustomVoiceMessage(String token, String openid, String media_id, String kf_account)` - `WxResult sendCustomVoiceMessage(String token, String openid, String media_id)` - `WxResult sendMPCustomImageMessage(String token, String openid, String media_id, String kf_account)` - `WxResult sendMPCustomImageMessage(String token, String openid, String media_id)` - `WxResult sendCustomImageMessage(String token, String openid, String media_id, String kf_account)` - `WxResult sendCustomImageMessage(String token, String openid, String media_id)` - `WxResult sendMPCustomTextMessage(String token, String openid, String content, String kf_account)` - `WxResult sendMPCustomTextMessage(String token, String openid, String content)` - `WxResult sendCustomTextMessage(String token, String openid, String content, String kf_account)` - `WxResult sendCustomTextMessage(String token, String openid, String content)` - 上传素材 - `WxMediaResult uploadMaterial(String token, MediaType mediaType, File file, Map data)` - `WxMediaResult uploadMaterial(String token, MediaType mediaType, File file)` - `WxMediaResult uploadImageMaterial(String token, File file)` - `WxMediaResult uploadVoiceMaterial(String token, File file)` - `WxMediaResult uploadVideoMaterial(String token, File file, String title, String introduction)` - `WxMediaResult uploadThumbMaterial(String token, File file)` - `WxMediaResult uploadMedia(AppType type, String token, MediaType mediaType, File file)` - `WxMediaResult uploadMedia(AppType type, String token, MediaType mediaType, String filePath)` - `WxMediaResult uploadImageMedia(AppType type, String token, File file)` - `WxMediaResult uploadImageMedia(AppType type, String token, String filePath)` - `WxMediaResult uploadMPMedia(String token, MediaType mediaType, File file)` - `WxMediaResult uploadMPMedia(String token, MediaType mediaType, String filePath)` - `WxMediaResult uploadMedia(String token, MediaType mediaType, File file)` - `WxMediaResult uploadMedia(String token, MediaType mediaType, String filePath)` - `WxMediaResult uploadMPImageMedia(String token, File file)` - `WxMediaResult uploadMPImageMedia(String token, String filePath)` - `WxMediaResult uploadImageMedia(String token, File file)` - `WxMediaResult uploadImageMedia(String token, String filePath)` - `WxMediaResult uploadMPVoiceMedia(String token, File file)` - `WxMediaResult uploadMPVoiceMedia(String token, String filePath)` - `WxMediaResult uploadVoiceMedia(String token, File file)` - `WxMediaResult uploadVoiceMedia(String token, String filePath)` - `WxMediaResult uploadMPVideoMedia(String token, File file)` - `WxMediaResult uploadMPVideoMedia(String token, String filePath)` - `WxMediaResult uploadVideoMedia(String token, File file)` - `WxMediaResult uploadVideoMedia(String token, String filePath)` - `WxMediaResult uploadMPThumbMedia(String token, File file)` - `WxMediaResult uploadMPThumbMedia(String token, String filePath)` - `WxMediaResult uploadThumbMedia(String token, File file)` - `WxMediaResult uploadThumbMedia(String token, String filePath)` - 客服消息(企业微信) - `WxKfResult sendWxKfMsg(String token, String touser, String open_kfid, CustomMessageType msgType, String data, String msgid)` - `WxKfResult sendWxKfMsg(String token, String touser, String open_kfid, CustomMessageType msgType, String data)` - `WxKfResult sendWxKfTextMsg(String token, String touser, String open_kfid, String content, String msgid)` - `WxKfResult sendWxKfTextMsg(String token, String touser, String open_kfid, String content)` - `WxKfResult sendWxKfImageMsg(String token, String touser, String open_kfid, String media_id, String msgid)` - `WxKfResult sendWxKfImageMsg(String token, String touser, String open_kfid, String media_id)` - `WxKfResult sendWxKfVoiceMsg(String token, String touser, String open_kfid, String media_id, String msgid)` - `WxKfResult sendWxKfVoiceMsg(String token, String touser, String open_kfid, String media_id)` - `WxKfResult sendWxKfVideoMsg(String token, String touser, String open_kfid, String media_id, String msgid)` - `WxKfResult sendWxKfVideoMsg(String token, String touser, String open_kfid, String media_id)` - `WxKfResult sendWxKfFileMsg(String token, String touser, String open_kfid, String media_id, String msgid)` - `WxKfResult sendWxKfFileMsg(String token, String touser, String open_kfid, String media_id)` - `WxKfResult sendWxKfLinkMsg(String token, String touser, String open_kfid, String title, String desc, String url, String thumb_media_id, String msgid)` - `WxKfResult sendWxKfLinkMsg(String token, String touser, String open_kfid, String title, String desc, String url, String thumb_media_id)` - `WxKfResult sendWxKfMiniprogramMsg(String token, String touser, String open_kfid, String appid, String title, String pagepath, String thumb_media_id, String msgid)` - `WxKfResult sendWxKfMiniprogramMsg(String token, String touser, String open_kfid, String appid, String title, String pagepath, String thumb_media_id)` - `WxKfResult sendWxKfLocationMsg(String token, String touser, String open_kfid, String name, String address, double latitude, double longitude, String msgid)` - `WxKfResult sendWxKfLocationMsg(String token, String touser, String open_kfid, String name, String address, double latitude, double longitude)` - `WxKfResult sendWxKfMsgmenuMsg(String token, String touser, String open_kfid, String head_content, String tail_content, String msgid, WxKfMsgMenuSubitem ...items)` - `WxKfResult sendWxKfMsgmenuMsg(String token, String touser, String open_kfid, String head_content, String tail_content, WxKfMsgMenuSubitem ...items)` - `WxKfResult sendWxKfMsgmenuMsg(String token, String touser, String open_kfid, String head_content, String tail_content, List list, String msgid)` - `WxKfResult sendWxKfMsgmenuMsg(String token, String touser, String open_kfid, String head_content, String tail_content, List list)` - `WxKfMsg getWxKfSyncMsg(String accessToken, String cursor, String token, String open_kfid, int voice_format, int limit)` - 特定事件客服消息(企业微信) - `WxKfResult sendWxKfMsgOnEvent(String token, String code, CustomMessageType msgType, String data, String msgid)` - `WxKfResult sendWxKfMsgOnEvent(String token, String code, CustomMessageType msgType, String data)` - `WxKfResult sendWxKfTextMsgOnEvent(String token, String code, String content, String msgid)` - `WxKfResult sendWxKfTextMsgOnEvent(String token, String code, String content)` - `WxKfResult sendWxKfMsgmenuMsgOnEvent(String token, String code, String head_content, String tail_content, String msgid, WxKfMsgMenuSubitem ...items)` - `WxKfResult sendWxKfMsgmenuMsgOnEvent(String token, String code, String head_content, String tail_content, WxKfMsgMenuSubitem ...items)` - `WxKfResult sendWxKfMsgmenuMsgOnEvent(String token, String code, String head_content, String tail_content, List list, String msgid)` - `WxKfResult sendWxKfMsgmenuMsgOnEvent(String token, String code, String head_content, String tail_content, List list)` - 模板消息 - `WxResult sendTemplateMessage(String token, String data)` - 上传素材(企业微信) - `WxMediaResult uploadWxMedia(String token, MediaType mediaType, File file)` - `WxMediaResult uploadWxMedia(String token, MediaType mediaType, String filePath)` - `WxMediaResult uploadWxImageMedia(String token, File file)` - `WxMediaResult uploadWxImageMedia(String token, String filePath)` - `WxMediaResult uploadWxVoiceMedia(String token, File file)` - `WxMediaResult uploadWxVoiceMedia(String token, String filePath)` - `WxMediaResult uploadWxVideoMedia(String token, File file)` - `WxMediaResult uploadWxVideoMedia(String token, String filePath)` - `WxMediaResult uploadWxFileMedia(String token, File file)` - `WxMediaResult uploadWxFileMedia(String token, String filePath)` - 小程序码 - `WxBufferResult getWxaCode(String token, String path)` - `WxBufferResult getWxaCode(String token, String path, int colorR, int colorG, int colorB)` - `WxBufferResult getWxaCode(String token, String path, int width)` - `WxBufferResult getWxaCode(String token, String path, int width, int colorR, int colorG, int colorB)` - `WxBufferResult getWxaCode(String token, String path, int width, boolean isHyaline)` - `WxBufferResult getWxaCode(String token, String path, int width, int colorR, int colorG, int colorB, boolean isHyaline)` - `WxBufferResult getWxaCode(String token, String path, int width, boolean isHyaline, MpVersion envVersion)` - `WxBufferResult getWxaCode(String token, String path, int width, int colorR, int colorG, int colorB, boolean isHyaline, MpVersion envVersion)` - `WxBufferResult getWxaCode(String token, String path, int width, boolean autoColor, int colorR, int colorG, int colorB, boolean isHyaline, MpVersion envVersion)` - `WxBufferResult getUnlimitWxaCode(String token, String scene)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, int colorR, int colorG, int colorB)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, int colorR, int colorG, int colorB)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int colorR, int colorG, int colorB)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, int width)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, int width, int colorR, int colorG, int colorB)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int width)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int width, int colorR, int colorG, int colorB)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int width, boolean isHyaline)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int width, int colorR, int colorG, int colorB, boolean isHyaline)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int width, boolean isHyaline, MpVersion envVersion)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int width, int colorR, int colorG, int colorB, boolean isHyaline, MpVersion envVersion)` - `WxBufferResult getUnlimitWxaCode(String token, String scene, String page, Boolean check_path, int width, boolean autoColor, int colorR, int colorG, int colorB, boolean isHyaline, MpVersion envVersion)` - `WxBufferResult getWxaQrcode(String token, String path)` - `WxBufferResult getWxaQrcode(String token, String path, int width)` ### 微信公众平台消息 `WxSalon` - 初始化 - `WxSalon(HttpServletRequest request, String token)` - `WxSalon(HttpServletRequest request, String token, Boolean isWorkWeixin)` - `WxSalon(HttpServletRequest request, String token, String appid, String encodingAESKey)` - `WxSalon(HttpServletRequest request, String token, String appid, String encodingAESKey, Boolean isWorkWeixin)` - `WxSalon(Map params, String token)` - `WxSalon(Map params, String token, Boolean isWorkWeixin)` - `WxSalon(Map params, String token, String appid, String encodingAESKey)` - `WxSalon(Map params, String token, String appid, String encodingAESKey, Boolean isWorkWeixin)` - 执行方法 - `String run(WxSalonOptions options)` - 获取参数 `get` - `Object get(String key)` - `Object get(String key, Object defaultValue)` - XML格式字符串转换为Map - `Map xmlToMap(String strXML)` - JSON格式字符串转换为Map - `Map jsonToMap(String strJSON)` - 获取被动回复文本消息内容(XML格式) - `String getText(String content)` - `String getText(String content, String toUserName, String fromUserName)` - `String getText(String content, String toUserName, String fromUserName, boolean isEncryp)` - `String getText(String content, String toUserName, String fromUserName, boolean isEncryp, String token, String appid, String encodingAESKey)` - 获取被动回复图片消息内容(XML格式) - `String getImage(String mediaId)` - `String getImage(String mediaId, String toUserName, String fromUserName)` - `String getImage(String mediaId, String toUserName, String fromUserName, boolean isEncryp)` - `String getImage(String mediaId, String toUserName, String fromUserName, boolean isEncryp, String token, String appid, String encodingAESKey)` - 获取被动回复语音消息内容(XML格式) - `String getVoice(String mediaId)` - `String getVoice(String mediaId, String toUserName, String fromUserName)` - `String getVoice(String mediaId, String toUserName, String fromUserName, boolean isEncryp)` - `String getVoice(String mediaId, String toUserName, String fromUserName, boolean isEncryp, String token, String appid, String encodingAESKey)` - 获取被动回复视频消息内容(XML格式) - `String getVideo(String mediaId, String title, String description)` - `String getVideo(String mediaId, String title, String description, String toUserName, String fromUserName)` - `String getVideo(String mediaId, String title, String description, String toUserName, String fromUserName, boolean isEncryp)` - `String getVideo(String mediaId, String title, String description, String toUserName, String fromUserName, boolean isEncryp, String token, String appid, String encodingAESKey)` - 获取被动回复音乐消息内容(XML格式) - `String getMusic(String title, String description, String musicURL, String hQMusicUrl, String thumbMediaId)` - `String getMusic(String title, String description, String musicURL, String hQMusicUrl, String thumbMediaId, String toUserName, String fromUserName)` - `String getMusic(String title, String description, String musicURL, String hQMusicUrl, String thumbMediaId, String toUserName, String fromUserName, boolean isEncryp)` - `String getMusic(String title, String description, String musicURL, String hQMusicUrl, String thumbMediaId, String toUserName, String fromUserName, boolean isEncryp, String token, String appid, String encodingAESKey)` - 获取被动回复文章消息内容(XML格式) - `String getNews(String title, String description, String picurl, String url)` - `String getNews(String title, String description, String picurl, String url, String toUserName, String fromUserName)` - `String getNews(String title, String description, String picurl, String url, String toUserName, String fromUserName, boolean isEncryp)` - `String getNews(String title, String description, String picurl, String url, String toUserName, String fromUserName, boolean isEncryp, String token, String appid, String encodingAESKey)` - 获取被动回复消息内容(XML格式) - `String getResultData(String data)` - `String getResultData(String data, boolean isEncryp, String token, String appid, String encodingAESKey)` - 获取小程序链接 - `String getMpLink(String title, String appid, String path, String url)` ### 抖音工具类 `DouyinUtils` - 常量 - `TOKEN_URL` 接口调用凭据地址(网站、APP) - `MP_TOKEN_URL` 接口调用凭据地址(小程序) - `MP_SANDBOX_TOKEN_URL` 接口调用凭据地址(小程序)(沙盒) - `LOGIN_URL` 登录地址(网站、APP) - `MP_LOGIN_URL` 登录地址(小程序) - `MP_SANDBOX_LOGIN_URL` 登录地址(小程序)(沙盒) - `REFRESH_TOKEN_URL` 刷新令牌地址(网站、APP) - `USERINFO_URL` 用户信息地址(网站、APP) - `GET_SUBSCRIBE_TEMPLATE_URL` 获取小程序的模版列表地址 - `CREATE_ORDER_URL` 预下单接口地址 - `SANDBOX_CREATE_ORDER_URL` 预下单接口地址(沙盒) - `QUERY_ORDER_URL` 支付结果查询地址 - `SANDBOX_QUERY_ORDER_URL` 支付结果查询地址(沙盒) - `PUSH_ORDER_URL` 同步订单地址 - `QUERY_ORDER_INFO_URL` 查询订单信息(交易系统) - `CREATE_REFUND_URL` 发起退款地址(交易系统) - `QUERY_REFUND_INFO_URL` 查询退款信息地址(交易系统) - `AUDIT_REFUND_URL` 同步退款审核结果地址(交易系统) - `PUSH_FULFILL_STATUS_URL` 推送履约状态(交易系统) - 枚举 - `AppType {MP, WEB, H5, APP}` - 获取接口调用凭据 - `DyResult getMPAccessToken(String appid, String secret)` - `DyResult getAccessToken(String client_key, String client_secret)` - `DyResult getAccessToken(AppType type, String appid, String secret)` - 获取登录凭证 - `DyResult getMPLogin(String appid, String secret, String code)` - `DyResult getMPLogin(String appid, String secret, String code, String anonymous_code)` - `DyResult getLogin(String client_key, String client_secret, String code)` - `DyResult getLogin(AppType type, String appid, String secret, String code)` - `getLogin(AppType type, String appid, String secret, String code, String anonymous_code)` - `DyResult refreshLogin(String client_key, String refreshToken)` - 获取用户信息 - `DyResult getUserInfo(String token, String openid)` - 订阅消息 - `DyResult getSubscribeTemplateList(String token, int page_num, int page_size, int classification, String... category_ids)` - 担保支付 - `DyResult createOrder(Map data, String SALT)` - `DyResult createSandboxOrder(Map data, String SALT)` - `DyResult queryOrder(String app_id, String out_order_no, String SALT)` - `DyResult queryOrder(String app_id, String out_order_no, String thirdparty_id, String SALT)` - `DyResult querySandboxOrder(String app_id, String out_order_no, String SALT)` - `DyResult querySandboxOrder(String app_id, String out_order_no, String thirdparty_id, String SALT)` - `DyResult pushOrder(Map data)` - 退款(交易系统) - `DyResult queryOrderInfo(String token, String order_id, String out_order_no)` - `DyResult createRefund(String token, Map data)` - `DyResult queryRefundInfo(String token, String refund_id, String out_refund_no, String order_id)` - `DyResult auditRefund(String token, String refund_id, boolean refund_audit_status, String deny_message)` - `DyResult pushFulfillStatus(String token, String order_id, String to_status, List item_order_id_list)` - `DyResult pushFulfillStatus(String token, String order_id, String to_status, String... item_order_id_list)` ### 快手工具类 `KuaishouUtils` - 常量 - `TOKEN_URL` 接口调用凭据地址(网站、APP、小程序) - `LOGIN_URL` 登录地址(网站、APP) - `MP_LOGIN_URL` 登录地址(小程序) - `REFRESH_TOKEN_URL` 刷新令牌地址(网站、APP) - `USERINFO_URL` 用户信息地址(网站、APP) - `USERPHONE_URL` 用户手机号地址(网站、APP) - `CREATE_ORDER_URL` 预下单接口地址(有收银台) - `CREATE_IAP_ORDER_URL` 预下单接口地址(苹果IAP支付) - `QUERY_ORDER_URL` 订单查询接口地址(有收银台) - `APPLY_REFUND_URL` 订单退款接口地址(有收银台) - `QUERY_REFUND_URL` 退款查询接口地址(有收银台) - `SETTLE_URL` 结算接口地址(有收银台) - `QUERY_SETTLE_URL` 结算查询接口地址(有收银台) - `CREATE_ORDER_WITH_CHANNEL_URL` 预下单接口地址(无收银台) - `CANCEL_CHANNEL_URL` 取消支付方式接口地址(无收银台) - `REPORT_URL` 订单同步接口地址 - `UPLOAD_WITH_FILE_URL` 通过文件进行图片上传接口地址 - `UPLOAD_WITH_URL_URL` 通过url进行图片上传接口地址 - 枚举 - `AppType {MP, WEB, H5, APP}` - 获取接口调用凭据 - `KsToken getAccessToken(String appid, String secret)` - 获取登录凭证 - `KsLogin getMPLogin(String appid, String secret, String code)` - `KsLogin getLogin(String appid, String secret, String code)` - `KsLogin getLogin(AppType type, String appid, String secret, String code)` - `KsLogin refreshLogin(String appid, String secret, String refreshToken)` - 获取用户信息 - `KsUser getUserInfo(String appid, String token)` - 支付 - `KsOrder createOrder(String appid, String secret, String token, Map data)` - `KsOrder createOrder(String appid, String secret, String token, Map data, boolean isIAP)` - `KsPayment queryOrder(String appid, String secret, String token, String out_order_no)` - `KsRefund applyRefund(String appid, String secret, String token, Map data)` - `KsRefund queryRefund(String appid, String secret, String token, String out_refund_no)` - `KsSettle settle(String appid, String secret, String token, Map data)` - `KsSettle querySettle(String appid, String secret, String token, String out_settle_no)` - `KsOrder createOrderWithChannel(String appid, String secret, String token, Map data)` - `KsOrder cancelChannel(String appid, String secret, String token, String out_order_no)` - `KsResult report(String appid, String token, Map data)` - `String getSign(Map signParamsMap, String secret)` - `KsImgInfo uploadWithFile(String appid, String token, String filePath)` - `KsImgInfo uploadWithFile(String appid, String token, File file)` - `KsImgInfo uploadWithUrl(String appid, String token, String url)` - ## 未来计划 - ## 更新历史 ### v2.13.0(2025/04/04) - 新增 [字符串工具类] `toDouble` 函数 ### v2.12.0(2024/12/06) - 新增 `Result` 类里 `needRefresh` 属性 ### v2.11.0(2024/10/08) - 新增 [微信工具类] `WEB_CHANGE_OPENID_LIST_URL` 常量 - 新增 [微信工具类] `getChangeOpenidList` 函数 - 新增 [微信] `WxChangeOpenidList` 和 `WxChangeOpenid` 类 ### v2.10.0(2024/10/02) - 新增 [快手工具类] `CREATE_IAP_ORDER_URL` 常量 - 更新 [快手工具类] `createOrder` 函数 - 更新 [快手] `KsPaymentInfo` 和 `KsNotifyPaymentData` 类 ### v2.9.1(2024/10/01) - 修复 [字符串工具类] `String trim(String source, String beTrim)` 函数报错问题 ### v2.9.0(2024/03/07) - 新增 [抖音工具类] `QUERY_ORDER_INFO_URL` 常量 - 新增 [抖音工具类] `CREATE_REFUND_URL` 常量 - 新增 [抖音工具类] `QUERY_REFUND_INFO_URL` 常量 - 新增 [抖音工具类] `AUDIT_REFUND_URL` 常量 - 新增 [抖音工具类] `PUSH_FULFILL_STATUS_URL` 常量 - 新增 [抖音工具类] `queryOrderInfo` 函数 - 新增 [抖音工具类] `createRefund` 函数 - 新增 [抖音工具类] `queryRefundInfo` 函数 - 新增 [抖音工具类] `auditRefund` 函数 - 新增 [抖音工具类] `pushFulfillStatus` 函数 - 新增 为 [抖音] `DyRefund` 类 - 新增 为 [抖音] `DyRefundResult` 类 - 新增 为 [抖音] `DyOrderItemDetail` 类 - 新增 为 [抖音] `DyRefundItemDetail` 类 - 新增 为 [抖音] `DyRefundMerchantAuditDetail` 类 - 更新 为 [抖音] `DyOrderMsg` 类 ### v2.8.1(2024/03/01) - 新增 [数组工具类] `toIntArray` 函数 ### v2.8.0(2024/02/16) - 新增 `KeyValue` 类 - 新增 为 [抖音] 通用交易系统 `DYSign` 类 - 更新 [抖音] `DyOrderMsg` 类 ### v2.7.0(2024/01/19) - 新增 [微信工具类] `getWxaCode` 函数 - 新增 [微信工具类] `getUnlimitWxaCode` 函数 - 新增 [微信工具类] `getWxaQrcode` 函数 - 新增 [微信工具类] `getMpLink` 枚举 - 新增 [微信类] `WxBufferResult` 微信缓存结果 - 新增 [网络工具类] `getByte` 函数 - 新增 [网络工具类] `postByte` 函数 - 新增 [网络工具类] `requestByte` 函数 - 新增 [网络工具类] `getText` 函数 - 新增 [网络工具类] `getBytes` 函数 - 新增 [文件工具类] `createFile` 函数 ### v2.6.0(2023/12/15) - 新增 [微信工具类] `WX_KF_SEND_MSG_ON_EVENT_URL` 常量 - 新增 [微信工具类] `sendWxKfMsgOnEvent` 函数 - 新增 [微信工具类] `sendWxKfTextMsgOnEvent` 函数 - 新增 [微信工具类] `sendWxKfMsgmenuMsgOnEvent` 函数 ### v2.5.0(2023/12/09) - 新增 [微信工具类] `WEB_SEND_TEMPLATE_MESSAGE_URL` 常量 - 新增 [微信工具类] `sendTemplateMessage` 函数 ### v2.4.0(2023/10/28) - 新增 [微信工具类] `WEB_USERINFO_URL` 常量 - 新增 [微信工具类] `getWebUserInfo` 函数 ### v2.3.0(2023/10/19) - 新增 [微信工具类] `getUserPhone` 函数 - 新增 [网络工具类] 枚举 `Method` 的 `PUT` 和 `DELETE` 值 ### v2.2.0(2023/10/12) - 新增 [微信工具类] `getUserOpenidList` 函数 ### v2.1.0(2023/10/07) - 新增 [字符串工具类] `ifNull` 函数 ### v2.0.0(2023/07/29) - 新增 快手工具类(`getAccessToken`, `getLogin`, `refreshLogin`, `getUserInfo`, `createOrder`, `queryOrder`, `applyRefund`, `queryRefund`, `settle`, `querySettle`, `createOrderWithChannel`, `cancelChannel`, `report`, `getSign`, `uploadWithFile`, `uploadWithUrl`) - 新增 [抖音工具类] `pushOrder` 函数 - 修复 [日志工具类] `name` 和 `msg` 参数混乱的问题 - 废弃 [日期工具类] `CDate` 函数,使用 `getDate` 替代 - 移除 [日志工具类] `info` 和 `warn` 方法的 `Throwable thrown` 参数 ### v1.0.0(2023/05/19) - 新增 数组工具类(`joinArray` 和 `toIntArray`) - 新增 剪贴板工具类(`setClipboard`) - 新增 通用工具类(`getUUID`, `checkIp4` 和 `checkIp6`) - 新增 日期工具类(`CDate`, `getToday`, `getYesterday`, `getCalendar`, `getDate`, `format`, `getTimestamp` 和 `getTimestampSec`) - 新增 文件工具类(`getFileFullName`, `getFileExtension`, `getFileName`, `getFileDirectoryName`, `readAllText` 和 `createFile`) - 新增 Json工具类(`toArray`, `toObject`, `getObject`, `getJsonObject`, `getJsonArray`, `removeObjectKeys`, `removeArrayKeys`, `removeObjectKeysWithout`, `removeArrayKeysWithout`, `toIntArray` 和 `concat`) - 新增 日志工具类(`info`, `warn`, `error` 和 `write`) - 新增 运算工具类(`OR` 和 `AND`) - 新增 请求工具类(`RequestUtils`, `get`, `putAll`, `put`, `getHeaders`, `getHeader`, `getPostData`, `getIpAddress` 和 `getDataType`) - 新增 字符串工具类(`isNumeric`, `isInteger`, `isNull`, `toLong`, `toInt`, `toFloat`, `wrap`, `wrapLine`, `notContains`, `Contains`, `endsWith`, `md5`, `verify`, `sha1`, `getBytesContent`, `getLanguage`, `getBase64Encode`, `getBase64Decode`, `getUrlEncode`, `getUrlDecode`, `replaceAllEmoji`, `trim`, `split` 和 `getNonceStr`) - 新增 网络工具类(`get`, `post` 和 `request`) - 新增 微信工具类(`getAccessToken`, `getWxAccessToken`, `getTicket`, `getWxTicket`, `getLogin`, `refreshLogin`, `getUserInfo`, `getSubscribeTemplateList`, `sendSubscribeMessage`, `sendCustomMessage`, `uploadMedia`, `uploadMaterial`, `getWxKfSyncMsg`, `sendWxKfMsg` 和 `uploadWxMedia`) - 新增 抖音工具类(`getAccessToken`, `getLogin`, `refreshLogin`, `getUserInfo`, `getSubscribeTemplateList`, `createOrder`, `createSandboxOrder`, `queryOrder` 和 `querySandboxOrder`) - 新增 微信公众平台消息工具类(`WxSalon`, `run`, `get`, `xmlToMap`, `jsonToMap`, `getText`, `getImage`, `getVoice`, `getVideo`, `getMusic`, `getNews`, `getResultData` 和 `getMpLink`)