From 4ed4d6131fa049c8a678f5f6cf99973724a816a1 Mon Sep 17 00:00:00 2001 From: renzhiyuan <465386466@qq.com> Date: Thu, 27 Aug 2026 16:34:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6:=20sdk=5Ft?= =?UTF-8?q?b=5Flinkedmall/errors.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdk_tb_linkedmall/errors.go | 58 +++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sdk_tb_linkedmall/errors.go diff --git a/sdk_tb_linkedmall/errors.go b/sdk_tb_linkedmall/errors.go new file mode 100644 index 0000000..d3a69d1 --- /dev/null +++ b/sdk_tb_linkedmall/errors.go @@ -0,0 +1,58 @@ +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" +) \ No newline at end of file