error.go 2.6 KB

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