error.go 814 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package util
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "fmt"
  6. )
  7. //ErrUnmarshall err when unmarshall
  8. var ErrUnmarshall = errors.New("Json Unmarshal Error")
  9. //CommonError 微信返回的错误信息
  10. type CommonError struct {
  11. ErrCode int64 `json:"errcode"`
  12. ErrMsg string `json:"errmsg"`
  13. }
  14. //NewCommonError new CommonError
  15. func NewCommonError(code int64, msg string) *CommonError {
  16. return &CommonError{ErrCode: code, ErrMsg: msg}
  17. }
  18. func (e *CommonError) Error() string {
  19. return e.ErrMsg
  20. }
  21. //CheckCommonError check CommonError
  22. func CheckCommonError(jsonData []byte) error {
  23. var errmsg CommonError
  24. if err := json.Unmarshal(jsonData, &errmsg); err != nil {
  25. return ErrUnmarshall
  26. }
  27. if errmsg.ErrCode != 0 {
  28. return fmt.Errorf("Error , errcode=%d , errmsg=%s", errmsg.ErrCode, errmsg.ErrMsg)
  29. }
  30. return nil
  31. }