Skip to content

Commit 2cffead

Browse files
committed
polish:优化全局错误输出
1 parent 8814bbd commit 2cffead

File tree

3 files changed

+39
-15
lines changed

3 files changed

+39
-15
lines changed

client.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package WeChatCustomerServiceSDK
22

33
import (
4-
"errors"
54
"github.com/NICEXAI/WeChatCustomerServiceSDK/cache"
65
"sync"
76
"time"
@@ -39,7 +38,7 @@ type Client struct {
3938
// New 初始化微信客服实例
4039
func New(options Options) (client *Client, err error) {
4140
if options.Cache == nil {
42-
return nil, errors.New("the cache is nil, please set the cache first")
41+
return nil, NewSDKErr(50001)
4342
}
4443

4544
if options.ExpireTime == 0 {

error.go

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,47 @@
11
package WeChatCustomerServiceSDK
22

3-
import "fmt"
3+
import (
4+
"reflect"
5+
"strings"
6+
)
47

58
// Error 错误
6-
type Error struct {
7-
ErrCode int `json:"err_code,omitempty"`
8-
ErrMsg string `json:"err_msg"`
9-
}
9+
type Error string
10+
11+
const (
12+
// SDKInitFailed 错误码:50001
13+
SDKInitFailed Error = "SDK初始化失败"
14+
// SDKCacheUnavailable 错误码:50002
15+
SDKCacheUnavailable Error = "缓存无效"
16+
// SDKUnknownError 错误码:50003
17+
SDKUnknownError Error = "未知错误"
18+
// SDKInvalidCredential 错误码:40001
19+
SDKInvalidCredential Error = "不合法的secret参数"
20+
// SDKAccessTokenExpired 错误码:42001
21+
SDKAccessTokenExpired Error = "AccessToken 已过期"
22+
)
1023

1124
//输出错误信息
1225
func (r Error) Error() string {
13-
return fmt.Sprintf("%d:%s", r.ErrCode, r.ErrMsg)
26+
return reflect.ValueOf(r).String()
1427
}
1528

1629
// NewSDKErr 初始化SDK实例错误信息
17-
func NewSDKErr(code int, msg string) Error {
18-
return Error{
19-
ErrCode: code,
20-
ErrMsg: msg,
30+
func NewSDKErr(code int, msgList ...string) Error {
31+
switch code {
32+
case 50001:
33+
return SDKInitFailed
34+
case 50002:
35+
return SDKCacheUnavailable
36+
case 40001:
37+
return SDKInvalidCredential
38+
case 42001:
39+
return SDKAccessTokenExpired
40+
default:
41+
//返回未知的自定义错误
42+
if len(msgList) > 0 {
43+
return Error(strings.Join(msgList, ","))
44+
}
45+
return SDKUnknownError
2146
}
2247
}

token.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package WeChatCustomerServiceSDK
22

33
import (
44
"encoding/json"
5-
"errors"
6-
"fmt"
5+
"fmt"
76
"github.com/NICEXAI/WeChatCustomerServiceSDK/util"
87
)
98

@@ -25,6 +24,7 @@ func (r *Client) GetAccessToken() (info AccessTokenSchema, err error) {
2524
if err != nil {
2625
return info, err
2726
}
27+
fmt.Println(string(data))
2828
_ = json.Unmarshal(data, &info)
2929
if info.ErrCode != 0 {
3030
return info, NewSDKErr(info.ErrCode, info.ErrMsg)
@@ -50,7 +50,7 @@ func (r *Client) initAccessToken() error {
5050
//判断是否已初始化完成,如果己初始化则直接返回当前实例
5151
token, err := r.getAccessToken()
5252
if err != nil {
53-
return errors.New("cache unavailable")
53+
return NewSDKErr(50002)
5454
}
5555
if token == "" {
5656
if err = r.RefreshAccessToken(); err != nil {

0 commit comments

Comments
 (0)