From cd28a5b4870e38e56876f2658e6b690a153267ab Mon Sep 17 00:00:00 2001 From: Xiaoyu Guo Date: Fri, 2 Nov 2018 11:20:08 +0800 Subject: [PATCH] =?UTF-8?q?#833=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chanjar/weixin/common/error/WxError.java | 5 + .../common/error/WxMiniappErrorMsgEnum.java | 233 ++++++++++++++++++ 2 files changed, 238 insertions(+) create mode 100644 weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxMiniappErrorMsgEnum.java diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxError.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxError.java index fc9b624f..bb3af040 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxError.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxError.java @@ -64,6 +64,11 @@ public class WxError implements Serializable { if (msg != null) { wxError.setErrorMsg(msg); } + } else if (type == WxType.MiniApp) { + final String msg = WxMiniappErrorMsgEnum.findMsgByCode(wxError.getErrorCode()); + if (msg != null) { + wxError.setErrorMsg(msg); + } } return wxError; diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxMiniappErrorMsgEnum.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxMiniappErrorMsgEnum.java new file mode 100644 index 00000000..225fd995 --- /dev/null +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxMiniappErrorMsgEnum.java @@ -0,0 +1,233 @@ +package me.chanjar.weixin.common.error; + +import lombok.Getter; + +/** + * 微信小程序错误码 + * @author biggates + */ +@Getter +public enum WxMiniappErrorMsgEnum { + /** + * 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的小程序调用接口 + *

对应操作:sendCustomerMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html + */ + CODE_40001(40001, "access_token 无效或 AppSecret 错误"), + /** + * 不合法的凭证类型 + *

对应操作:sendCustomerMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html + */ + CODE_40002(40002, "不合法的凭证类型"), + /** + * touser不是正确的openid + *

对应操作:sendCustomerMessage, sendUniformMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html + */ + CODE_40003(40003, "openid 不正确"), + /** + * 无效媒体文件类型 + *

对应操作:uploadTempMedia

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/uploadTempMedia.html + */ + CODE_40004(40004, "无效媒体文件类型"), + /** + * 无效媒体文件 ID + *

对应操作:getTempMedia

+ *

对应地址: + *

GET https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/getTempMedia.html + */ + CODE_40007(40007, "无效媒体文件 ID"), + /** + * appid不正确,或者不符合绑定关系要求 + *

对应操作:sendUniformMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html + */ + CODE_40013(40013, "appid不正确,或者不符合绑定关系要求"), + /** + * template_id 不正确 + *

对应操作:sendUniformMessage, sendTemplateMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html + */ + CODE_40037(40037, "template_id 不正确"), + /** + * form_id不正确,或者过期 + *

对应操作:sendUniformMessage, sendTemplateMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html + */ + CODE_41028(41028, "form_id 不正确,或者过期"), + /** + * code 或 template_id 不正确 + *

对应操作:code2Session, sendUniformMessage, sendTemplateMessage

+ *

对应地址: + *

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
+ *
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/code2Session.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html + */ + CODE_41029(41029, "请求的参数不正确"), + /** + * form_id 已被使用,或者所传page页面不存在,或者小程序没有发布 + *

对应操作:sendUniformMessage, getWXACodeUnlimit

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACodeUnlimit.html + */ + CODE_41030(41030, "请求的参数不正确"), + /** + * 调用分钟频率受限 + *

对应操作:getWXACodeUnlimit, sendUniformMessage, sendTemplateMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACodeUnlimit.html + */ + CODE_45009(45009, "调用分钟频率受限"), + /** + * 频率限制,每个用户每分钟100次 + *

对应操作:code2Session

+ *

对应地址: + *

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/code2Session.html + */ + CODE_45011(45011, "频率限制,每个用户每分钟100次"), + /** + * 回复时间超过限制 + *

对应操作:sendCustomerMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html + */ + CODE_45015(45015, "回复时间超过限制"), + /** + * 接口调用超过限额, 或生成码个数总和到达最大个数限制 + *

对应操作:createWXAQRCode, sendTemplateMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACode.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html + */ + CODE_45029(45029, "接口调用超过限额"), + /** + * 客服接口下行条数超过上限 + *

对应操作:sendCustomerMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html + */ + CODE_45047(45047, "客服接口下行条数超过上限"), + /** + * command字段取值不对 + *

对应操作:customerTyping + *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/customerTyping.html + */ + CODE_45072(45072, "command字段取值不对"), + /** + * 下发输入状态,需要之前30秒内跟用户有过消息交互 + *

对应操作:customerTyping + *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/customerTyping.html + */ + CODE_45080(45080, "下发输入状态,需要之前30秒内跟用户有过消息交互"), + /** + * 已经在输入状态,不可重复下发 + *

对应操作:customerTyping + *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/customerTyping.html + */ + CODE_45081(45081, "已经在输入状态,不可重复下发"), + /** + * API 功能未授权,请确认小程序已获得该接口 + *

对应操作:sendCustomerMessage

+ *

对应地址: + *

POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html + */ + CODE_48001(48001, "API 功能未授权"), + /** + * 内容含有违法违规内容 + *

对应操作:imgSecCheck, msgSecCheck

+ *

对应地址: + *

POST https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESS_TOKEN
+ *
POST https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN
+ *

+ * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/imgSecCheck.html + * @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/msgSecCheck.html + */ + CODE_87014(87014, "内容含有违法违规内容"), + ; + + private int code; + private String msg; + + WxMiniappErrorMsgEnum(int code, String msg) { + this.code = code; + this.msg = msg; + } + + /** + * 通过错误代码查找其中文含义. + */ + public static String findMsgByCode(int code) { + WxMiniappErrorMsgEnum[] values = WxMiniappErrorMsgEnum.values(); + for (WxMiniappErrorMsgEnum value : values) { + if (value.code == code) { + return value.msg; + } + } + + return null; + } +}