error.go 2.5 KB

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