package businesserr // ThirdErrCode 表示发券接口失败时返回的第三方业务错误码 // 格式为 tecxxx,用于统一抽象不同支付平台的错误 type ThirdErrCode string // 定义具体的第三方错误码常量(微信/支付宝的都有) const ( ThirdErrCodeDefault ThirdErrCode = "tec999" // 默认错误码 ThirdErrCodeStockNotEnough ThirdErrCode = "tec001" // 库存不足 ThirdErrCodeAdvanceFundingNotEnough ThirdErrCode = "tec002" // 垫资不足 ThirdErrCodeBatchNotStarted ThirdErrCode = "tec003" // 批次未开始 ThirdErrCodeBatchEnded ThirdErrCode = "tec004" // 批次已结束 ThirdErrCodeBatchOffline ThirdErrCode = "tec005" // 批次已下线 ThirdErrCodePaymentPlatformError ThirdErrCode = "tec006" // 微信/支付宝异常 ThirdErrCodeUserNotRealNameVerified ThirdErrCode = "tec007" // 用户没有实名认证 ThirdErrCodeUserNotFound ThirdErrCode = "tec008" // 用户账号不存在 ThirdErrCodeUserAccountFrozen ThirdErrCode = "tec009" // 用户账户被冻结 ThirdErrCodeUserHighRiskOrCheater ThirdErrCode = "tec010" // 用户为作弊用户或高风险用户 ThirdErrCodeUserNoMobileBound ThirdErrCode = "tec011" // 用户没有绑定手机号 ThirdErrCodeUserAccountAbnormal ThirdErrCode = "tec012" // 用户账号异常(没有明确的原因) ThirdErrCodeUserParticipationExceeded ThirdErrCode = "tec013" // 用户参与次数超限 ThirdErrCodeAppIDOpenIDMismatch ThirdErrCode = "tec014" // appid与openid不匹配 ThirdErrCodeDailyLimit ThirdErrCode = "tec015" // 超批次当天限额 ThirdErrCodeCallHigh ThirdErrCode = "tec016" // 调用频率过高 ) // CmbAPIError 定义 API 错误结构体 type CmbAPIError struct { StatusCode int `json:"status_code"` ErrorCode ErrCode `json:"error_code"` Description string `json:"description"` Hint string `json:"hint"` // 解决方案 ThirdErrCode ThirdErrCode `json:"third_err_code"` } var CmbAPIPublicErrorMap = map[ErrCode][]CmbAPIError{ BATCH_NOT_STARTED: { { StatusCode: 400, ErrorCode: BATCH_NOT_STARTED, Description: "批次未开始", Hint: "批次未开始", ThirdErrCode: ThirdErrCodeDefault, }, }, BATCH_ENDED: { { StatusCode: 400, ErrorCode: BATCH_ENDED, Description: "批次已结束", Hint: "批次已结束", ThirdErrCode: ThirdErrCodeDefault, }, }, }