package sdk_tb_linkedmall import "fmt" // APIError 表示API调用返回的业务错误 type APIError struct { Code string // 错误码 Message string // 错误信息 SubCode string // 子错误码 SubMessage string // 子错误信息 RequestId string // 请求ID } func (e *APIError) Error() string { return fmt.Sprintf("linkedmall api error: code=%s, message=%s, subCode=%s, subMessage=%s, requestId=%s", e.Code, e.Message, e.SubCode, e.SubMessage, e.RequestId) } // NewAPIError 创建API错误 func NewAPIError(code, message, subCode, subMessage, requestId string) *APIError { return &APIError{ Code: code, Message: message, SubCode: subCode, SubMessage: subMessage, RequestId: requestId, } } // IsBusinessSuccess 判断业务是否成功(需要HTTP 200 + Success=true) func IsBusinessSuccess(resp *CommonResponse) bool { return resp != nil && resp.Success } // CheckResponse 检查响应是否成功,失败返回error func CheckResponse(resp *CommonResponse) error { if resp == nil { return fmt.Errorf("linkedmall: response is nil") } if !resp.Success { return NewAPIError(resp.Code, resp.Message, resp.SubCode, resp.SubMessage, resp.RequestId) } return nil } // 预定义错误码常量 const ( ErrCodeShopTypeInvalid = "ShopTypeInvalid" ErrCodeSkuPriceNotUnique = "SkuPriceUnique" ErrCodePurchaseOrderNotFound = "PurchaseOrderNotFound" ErrCodeRefundNumberMustLessThanOrder = "RefundNumberMustLessThanOrder" ErrCodeRefundAmountMustLessThanOrder = "RefundAmountMustLessThanOrder" ErrCodeHasNoPrivilege = "HasNoPrivilege" ErrCodeOrderNotFound = "OrderNotFound" ErrCodeShopNotFind = "ShopNotFind" ErrCodeSavePurchaseOrderError = "SavePurchaseOrderError" ErrCodeOuterPurchaseOrderIdExist = "OuterPurchaseOrderIdExist" )