Skip to content

Commit cd28a5b

Browse files
biggatesbinarywang
authored andcommitted
binarywang#833 小程序模块增加错误码
1 parent 897394e commit cd28a5b

File tree

2 files changed

+238
-0
lines changed

2 files changed

+238
-0
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxError.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ public static WxError fromJson(String json, WxType type) {
6464
if (msg != null) {
6565
wxError.setErrorMsg(msg);
6666
}
67+
} else if (type == WxType.MiniApp) {
68+
final String msg = WxMiniappErrorMsgEnum.findMsgByCode(wxError.getErrorCode());
69+
if (msg != null) {
70+
wxError.setErrorMsg(msg);
71+
}
6772
}
6873

6974
return wxError;
Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
package me.chanjar.weixin.common.error;
2+
3+
import lombok.Getter;
4+
5+
/**
6+
* 微信小程序错误码
7+
* @author <a href="https://github.com/biggates">biggates</a>
8+
*/
9+
@Getter
10+
public enum WxMiniappErrorMsgEnum {
11+
/**
12+
* 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的小程序调用接口
13+
* <p>对应操作:<code>sendCustomerMessage</code></p>
14+
* <p>对应地址:
15+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN</pre>
16+
* </p>
17+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html
18+
*/
19+
CODE_40001(40001, "access_token 无效或 AppSecret 错误"),
20+
/**
21+
* 不合法的凭证类型
22+
* <p>对应操作:<code>sendCustomerMessage</code></p>
23+
* <p>对应地址:
24+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN</pre>
25+
* </p>
26+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html
27+
*/
28+
CODE_40002(40002, "不合法的凭证类型"),
29+
/**
30+
* touser不是正确的openid
31+
* <p>对应操作:<code>sendCustomerMessage</code>, <code>sendUniformMessage</code></p>
32+
* <p>对应地址:
33+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN</pre>
34+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN</pre>
35+
* </p>
36+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html
37+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html
38+
*/
39+
CODE_40003(40003, "openid 不正确"),
40+
/**
41+
* 无效媒体文件类型
42+
* <p>对应操作:<code>uploadTempMedia</code></p>
43+
* <p>对应地址:
44+
* <pre>POST https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE</pre>
45+
* </p>
46+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/uploadTempMedia.html
47+
*/
48+
CODE_40004(40004, "无效媒体文件类型"),
49+
/**
50+
* 无效媒体文件 ID
51+
* <p>对应操作:<code>getTempMedia</code></p>
52+
* <p>对应地址:
53+
* <pre>GET https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID</pre>
54+
* </p>
55+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/getTempMedia.html
56+
*/
57+
CODE_40007(40007, "无效媒体文件 ID"),
58+
/**
59+
* appid不正确,或者不符合绑定关系要求
60+
* <p>对应操作:<code>sendUniformMessage</code></p>
61+
* <p>对应地址:
62+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN</pre>
63+
* </p>
64+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html
65+
*/
66+
CODE_40013(40013, "appid不正确,或者不符合绑定关系要求"),
67+
/**
68+
* template_id 不正确
69+
* <p>对应操作:<code>sendUniformMessage</code>, <code>sendTemplateMessage</code></p>
70+
* <p>对应地址:
71+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN</pre>
72+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN</pre>
73+
* </p>
74+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html
75+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html
76+
*/
77+
CODE_40037(40037, "template_id 不正确"),
78+
/**
79+
* form_id不正确,或者过期
80+
* <p>对应操作:<code>sendUniformMessage</code>, <code>sendTemplateMessage</code></p>
81+
* <p>对应地址:
82+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN</pre>
83+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN</pre>
84+
* </p>
85+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html
86+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html
87+
*/
88+
CODE_41028(41028, "form_id 不正确,或者过期"),
89+
/**
90+
* code 或 template_id 不正确
91+
* <p>对应操作:<code>code2Session</code>, <code>sendUniformMessage</code>, <code>sendTemplateMessage</code></p>
92+
* <p>对应地址:
93+
* <pre>GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code</pre>
94+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN</pre>
95+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN</pre>
96+
* </p>
97+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/code2Session.html
98+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html
99+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html
100+
*/
101+
CODE_41029(41029, "请求的参数不正确"),
102+
/**
103+
* form_id 已被使用,或者所传page页面不存在,或者小程序没有发布
104+
* <p>对应操作:<code>sendUniformMessage</coce>, <code>getWXACodeUnlimit</code></p>
105+
* <p>对应地址:
106+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN</pre>
107+
* <pre>POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN</pre>
108+
* </p>
109+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html
110+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACodeUnlimit.html
111+
*/
112+
CODE_41030(41030, "请求的参数不正确"),
113+
/**
114+
* 调用分钟频率受限
115+
* <p>对应操作:<code>getWXACodeUnlimit</code>, <code>sendUniformMessage</coce>, <code>sendTemplateMessage</code></p>
116+
* <p>对应地址:
117+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN</pre>
118+
* <pre>POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN</pre>
119+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN</pre>
120+
* </p>
121+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/uniform-message/sendUniformMessage.html
122+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACodeUnlimit.html
123+
*/
124+
CODE_45009(45009, "调用分钟频率受限"),
125+
/**
126+
* 频率限制,每个用户每分钟100次
127+
* <p>对应操作:<code>code2Session</code></p>
128+
* <p>对应地址:
129+
* <pre>GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code</pre>
130+
* </p>
131+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/code2Session.html
132+
*/
133+
CODE_45011(45011, "频率限制,每个用户每分钟100次"),
134+
/**
135+
* 回复时间超过限制
136+
* <p>对应操作:<code>sendCustomerMessage</code></p>
137+
* <p>对应地址:
138+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN</pre>
139+
* </p>
140+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html
141+
*/
142+
CODE_45015(45015, "回复时间超过限制"),
143+
/**
144+
* 接口调用超过限额, 或生成码个数总和到达最大个数限制
145+
* <p>对应操作:<code>createWXAQRCode</code>, <code>sendTemplateMessage</code></p>
146+
* <p>对应地址:
147+
* <pre>POST https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN</pre>
148+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN</pre>
149+
* </p>
150+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACode.html
151+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html
152+
*/
153+
CODE_45029(45029, "接口调用超过限额"),
154+
/**
155+
* 客服接口下行条数超过上限
156+
* <p>对应操作:<code>sendCustomerMessage</code></p>
157+
* <p>对应地址:
158+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN</pre>
159+
* </p>
160+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html
161+
*/
162+
CODE_45047(45047, "客服接口下行条数超过上限"),
163+
/**
164+
* command字段取值不对
165+
* <p>对应操作:<code>customerTyping</code>
166+
* <p>对应地址:
167+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token=ACCESS_TOKEN</pre>
168+
* </p>
169+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/customerTyping.html
170+
*/
171+
CODE_45072(45072, "command字段取值不对"),
172+
/**
173+
* 下发输入状态,需要之前30秒内跟用户有过消息交互
174+
* <p>对应操作:<code>customerTyping</code>
175+
* <p>对应地址:
176+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token=ACCESS_TOKEN</pre>
177+
* </p>
178+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/customerTyping.html
179+
*/
180+
CODE_45080(45080, "下发输入状态,需要之前30秒内跟用户有过消息交互"),
181+
/**
182+
* 已经在输入状态,不可重复下发
183+
* <p>对应操作:<code>customerTyping</code>
184+
* <p>对应地址:
185+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token=ACCESS_TOKEN</pre>
186+
* </p>
187+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/customerTyping.html
188+
*/
189+
CODE_45081(45081, "已经在输入状态,不可重复下发"),
190+
/**
191+
* API 功能未授权,请确认小程序已获得该接口
192+
* <p>对应操作:<code>sendCustomerMessage</code></p>
193+
* <p>对应地址:
194+
* <pre>POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN</pre>
195+
* </p>
196+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/customer-message/sendCustomerMessage.html
197+
*/
198+
CODE_48001(48001, "API 功能未授权"),
199+
/**
200+
* 内容含有违法违规内容
201+
* <p>对应操作:<code>imgSecCheck</code>, <code>msgSecCheck</code></p>
202+
* <p>对应地址:
203+
* <pre>POST https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESS_TOKEN</pre>
204+
* <pre>POST https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN</pre>
205+
* </p>
206+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/imgSecCheck.html
207+
* @see https://developers.weixin.qq.com/miniprogram/dev/api/open-api/sec-check/msgSecCheck.html
208+
*/
209+
CODE_87014(87014, "内容含有违法违规内容"),
210+
;
211+
212+
private int code;
213+
private String msg;
214+
215+
WxMiniappErrorMsgEnum(int code, String msg) {
216+
this.code = code;
217+
this.msg = msg;
218+
}
219+
220+
/**
221+
* 通过错误代码查找其中文含义.
222+
*/
223+
public static String findMsgByCode(int code) {
224+
WxMiniappErrorMsgEnum[] values = WxMiniappErrorMsgEnum.values();
225+
for (WxMiniappErrorMsgEnum value : values) {
226+
if (value.code == code) {
227+
return value.msg;
228+
}
229+
}
230+
231+
return null;
232+
}
233+
}

0 commit comments

Comments
 (0)