error.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. // SDKApiForbidden 错误码:48002
  32. SDKApiForbidden Error = "API 禁止调用"
  33. // SDKOpenKFIDNotExist 错误码:95004
  34. SDKOpenKFIDNotExist Error = "open_kfid 不存在"
  35. // SDKWeWorkAlready 错误码:95011
  36. SDKWeWorkAlready Error = "已在企业微信使用微信客服"
  37. )
  38. //Error 输出错误信息
  39. func (r Error) Error() string {
  40. return reflect.ValueOf(r).String()
  41. }
  42. // NewSDKErr 初始化SDK实例错误信息
  43. func NewSDKErr(code int64, msgList ...string) Error {
  44. switch code {
  45. case 50001:
  46. return SDKInitFailed
  47. case 50002:
  48. return SDKCacheUnavailable
  49. case 40001:
  50. return SDKInvalidCredential
  51. case 41001:
  52. return SDKAccessTokenMissing
  53. case 42001:
  54. return SDKAccessTokenExpired
  55. case 40013:
  56. return SDKInvalidCorpID
  57. case 40014:
  58. return SDKAccessTokenInvalid
  59. case 40015:
  60. return SDKValidateSignatureFailed
  61. case 40016:
  62. return SDKDecryptMSGFailed
  63. case 45009:
  64. return SDKApiFreqOutOfLimit
  65. case 48002:
  66. return SDKApiForbidden
  67. case 95004:
  68. return SDKOpenKFIDNotExist
  69. case 95011:
  70. return SDKWeWorkAlready
  71. default:
  72. //返回未知的自定义错误
  73. if len(msgList) > 0 {
  74. return Error(strings.Join(msgList, ","))
  75. }
  76. return SDKUnknownError
  77. }
  78. }