error.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package kf
  2. import (
  3. "reflect"
  4. "strings"
  5. )
  6. // Error 错误
  7. type Error string
  8. const (
  9. // SDKInitFailed 错误码:50001
  10. SDKInitFailed Error = "SDK初始化失败"
  11. // SDKCacheUnavailable 错误码:50002
  12. SDKCacheUnavailable Error = "缓存无效"
  13. // SDKUnknownError 错误码:50003
  14. SDKUnknownError Error = "未知错误"
  15. // SDKInvalidCredential 错误码:40001
  16. SDKInvalidCredential Error = "不合法的secret参数"
  17. // SDKInvalidCorpID 错误码:40013
  18. SDKInvalidCorpID Error = "无效的 CorpID"
  19. // SDKAccessTokenInvalid 错误码:40014
  20. SDKAccessTokenInvalid Error = "AccessToken 无效"
  21. // SDKAccessTokenMissing 错误码:41001
  22. SDKAccessTokenMissing Error = "缺少AccessToken参数"
  23. // SDKAccessTokenExpired 错误码:42001
  24. SDKAccessTokenExpired Error = "AccessToken 已过期"
  25. // SDKApiFreqOutOfLimit 错误码:45009
  26. SDKApiFreqOutOfLimit Error = "接口请求次数超频"
  27. // SDKWeWorkAlready 错误码:95011
  28. SDKWeWorkAlready Error = "已在企业微信使用微信客服"
  29. )
  30. //Error 输出错误信息
  31. func (r Error) Error() string {
  32. return reflect.ValueOf(r).String()
  33. }
  34. // NewSDKErr 初始化SDK实例错误信息
  35. func NewSDKErr(code int64, msgList ...string) Error {
  36. switch code {
  37. case 50001:
  38. return SDKInitFailed
  39. case 50002:
  40. return SDKCacheUnavailable
  41. case 40001:
  42. return SDKInvalidCredential
  43. case 41001:
  44. return SDKAccessTokenMissing
  45. case 42001:
  46. return SDKAccessTokenExpired
  47. case 40013:
  48. return SDKInvalidCorpID
  49. case 40014:
  50. return SDKAccessTokenInvalid
  51. case 45009:
  52. return SDKApiFreqOutOfLimit
  53. case 95011:
  54. return SDKWeWorkAlready
  55. default:
  56. //返回未知的自定义错误
  57. if len(msgList) > 0 {
  58. return Error(strings.Join(msgList, ","))
  59. }
  60. return SDKUnknownError
  61. }
  62. }