error.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. // SDKValidateSignatureFailed 错误码:40015
  22. SDKValidateSignatureFailed Error = "校验签名错误"
  23. // SDKDecryptMSGFailed 错误码:40016
  24. SDKDecryptMSGFailed Error = "消息解密失败"
  25. // SDKAccessTokenMissing 错误码:41001
  26. SDKAccessTokenMissing Error = "缺少AccessToken参数"
  27. // SDKAccessTokenExpired 错误码:42001
  28. SDKAccessTokenExpired Error = "AccessToken 已过期"
  29. // SDKApiFreqOutOfLimit 错误码:45009
  30. SDKApiFreqOutOfLimit Error = "接口请求次数超频"
  31. // SDKWeWorkAlready 错误码:95011
  32. SDKWeWorkAlready Error = "已在企业微信使用微信客服"
  33. )
  34. //Error 输出错误信息
  35. func (r Error) Error() string {
  36. return reflect.ValueOf(r).String()
  37. }
  38. // NewSDKErr 初始化SDK实例错误信息
  39. func NewSDKErr(code int64, msgList ...string) Error {
  40. switch code {
  41. case 50001:
  42. return SDKInitFailed
  43. case 50002:
  44. return SDKCacheUnavailable
  45. case 40001:
  46. return SDKInvalidCredential
  47. case 41001:
  48. return SDKAccessTokenMissing
  49. case 42001:
  50. return SDKAccessTokenExpired
  51. case 40013:
  52. return SDKInvalidCorpID
  53. case 40014:
  54. return SDKAccessTokenInvalid
  55. case 40015:
  56. return SDKValidateSignatureFailed
  57. case 40016:
  58. return SDKDecryptMSGFailed
  59. case 45009:
  60. return SDKApiFreqOutOfLimit
  61. case 95011:
  62. return SDKWeWorkAlready
  63. default:
  64. //返回未知的自定义错误
  65. if len(msgList) > 0 {
  66. return Error(strings.Join(msgList, ","))
  67. }
  68. return SDKUnknownError
  69. }
  70. }