| 错误码 | 消息 | HTTP状态码 | 说明 |
|---|---|---|---|
| SUCCESS | 成功 | 200 | 请求处理成功 |
| 错误码 | 消息 | HTTP状态码 | 说明 |
|---|---|---|---|
| ERROR | 系统错误 | 500 | 通用系统错误 |
| PARAM_ERROR | 参数错误 | 400 | 请求参数错误或缺失 |
| VALIDATION_ERROR | 参数验证失败 | 400 | 参数格式或内容验证失败 |
| UNAUTHORIZED | 未授权 | 401 | 未授权访问 |
| FORBIDDEN | 禁止访问 | 403 | 无权限访问资源 |
| NOT_FOUND | 资源不存在 | 404 | 请求的资源不存在 |
| CONFLICT | 资源冲突 | 409 | 资源冲突(如重复请求) |
| RATE_LIMIT_EXCEEDED | 请求频率超限 | 429 | 超过接口访问频率限制 |
| INTERNAL_ERROR | 系统内部错误 | 500 | 系统内部异常 |
| 错误码 | 消息 | HTTP状态码 | 说明 |
|---|---|---|---|
| SIGNATURE_MISSING | 缺少签名信息 | 401 | 请求头缺少必要的签名参数 |
| SIGNATURE_INVALID | 签名验证失败 | 401 | 签名不正确或已失效 |
| TIMESTAMP_INVALID | 时间戳无效或已过期 | 401 | 请求时间戳超出允许范围 |
| NONCE_DUPLICATE | 随机数重复 | 401 | 检测到重复的nonce值 |
| IP_NOT_ALLOWED | IP地址不允许访问 | 403 | 客户端IP不在白名单中 |
| 错误码 | 消息 | HTTP状态码 | 说明 |
|---|---|---|---|
| MERCHANT_NOT_FOUND | 商户不存在 | 404 | 商户ID对应的配置不存在 |
| MERCHANT_DISABLED | 商户已被禁用 | 403 | 商户账户已被停用 |
| MERCHANT_NOT_AUTHORIZED | 商户无权限访问 | 403 | 商户无权访问该资源或接口 |
| SUB_MCHID_NOT_MATCH | 特约商户号与商户绑定关系不匹配 | 400 | 特约商户号与系统记录不一致 |
| 错误码 | 消息 | HTTP状态码 | 说明 |
|---|---|---|---|
| BATCH_NO_EXISTS | 商家批次单号已存在 | 409 | 批次单号重复 |
| BATCH_NO_NOT_FOUND | 商家批次单号不存在 | 404 | 查询的批次单不存在 |
| DETAIL_NO_EXISTS | 商家明细单号已存在 | 409 | 批次明细单号重复 |
| BATCH_PROCESSING | 批次正在处理中,请勿重复提交 | 409 | 批次正在处理,不可重复提交 |
| BATCH_STATUS_INVALID | 批次状 态无效 | 400 | 批次状态不符合预期 |
| 错误码 | 消息 | HTTP状态码 | 说明 |
|---|---|---|---|
| WECHAT_PAY_ERROR | 微信支付服务错误 | 500 | 微信支付接口返回错误 |
| WECHAT_PAY_NETWORK_ERROR | 微信支付网络请求失败 | 500 | 调用微信支付接口网络异常 |
| WECHAT_PAY_SIGNATURE_ERROR | 微信支付签名验证失败 | 401 | 微信支付回调签名验证失败 |
| WECHAT_PAY_SERVICE_ERROR | 微信支付服务异常 | 500 | 微信支付服务端异常 |
| WECHAT_PAY_PARAM_ERROR | 微信支付参数错误 | 400 | 传递给微信支付的参数错误 |
| WECHAT_PAY_ACCOUNT_ERROR | 商户账户错误 | 400 | 微信支付商户账户配置错误 |
| WECHAT_PAY_NOT_ENOUGH | 商户账户资金不足 | 400 | 商户余额不足以完成转账 |
| WECHAT_PAY_QUOTA_EXCEED | 超出商户单日转账额度 | 400 | 超过微信支付转账额度限制 |
| WECHAT_PAY_FREQUENCY_LIMITED | 请求频率超限 | 429 | 超过微信支付接口频率限制 |
| 场景 | 错误码 | HTTP状态码 | 触发条件 |
|---|---|---|---|
| IP不在白名单 | IP_NOT_ALLOWED | 403 | 客户端IP不在AppConfig或全局IP白名单中 |
| 重复请求 | CONFLICT | 409 | 相同请求在30秒内重复提交 |
| 签名验证失败 | SIGNATURE_INVALID | 401 | 签名不正确、时间戳过期、缺少签名参数等 |
X-Timestamp: 请求时间戳(毫秒,13位)X-Nonce: 随机数(≤128位,只能使用一次)X-Signature: 请求签名(HMAC-SHA256,小写16进制)X-Client-Id: 客户/应用ID(推荐,兼容旧版 X-App-Id)X-Biz-Merchant-Id: 业务方商户ID(推荐,兼容旧版 X-Merchant-Id)📖 详细签名规则请参考 签名生成详细规则
| 场景 | HTTP状态码 | 触发条件 |
|---|---|---|
| 超过限流阈值 | 429 | 在时间窗口内请求次数超过注解配置的limit值 |
{
"code": 429,
"message": "限流消息",
"success": false
}/api/v1/partner-transfer/batch/create - 创建批量转账| 错误码 | 场景 | 说明 |
|---|---|---|
| RATE_LIMIT_EXCEEDED | 超过限流 | 每商户每秒最多5次请求 |
| BATCH_PROCESSING | 批次处理中 | 相同批次号正在处理 |
| MERCHANT_NOT_AUTHORIZED | 商户无权限 | 商户配置验证失败 |
| VALIDATION_ERROR | 参数验证失败 | 请求参数不符合规范 |
| BATCH_NO_EXISTS | 批次号重复 | 商家批次单号已存在 |
| DETAIL_NO_EXISTS | 明细号重复 | 商家明细单号已存在 |
| WECHAT_PAY_* | 微信支付错误 | 微信支付接口返回的各类错误 |
| ERROR | 系统异常 | 未预期的系统错误 |
/api/v1/partner-transfer/batch/status - 查询批次状态| 错误码 | 场景 |
|---|---|
| RATE_LIMIT_EXCEEDED | 超过限流 |
| MERCHANT_NOT_FOUND | 商户配置不存在 |
| BATCH_NO_NOT_FOUND | 批次单号不存在 |
| ERROR | 查询异常 |
/api/v1/partner-transfer/batch/details - 查询批次明细| 错误码 | 场景 |
|---|---|
| RATE_LIMIT_EXCEEDED | 超过限流 |
| MERCHANT_NOT_FOUND | 商户配置不存在 |
| BATCH_NO_NOT_FOUND | 批次单号不存在 |
| ERROR | 查询异常 |
| 异常类型 | 错误码 | HTTP状态码 | 说明 |
|---|---|---|---|
| Exception | INTERNAL_ERROR | 500 | 所有未捕获异常 |
| NullPointerException | PARAM_ERROR | 400 | 空指针异常 |
| IllegalArgumentException | PARAM_ERROR | 400 | 非法参数异常 |
| MethodArgumentNotValidException | VALIDATION_ERROR | 400 | 参数验证失败 |
| BindException | VALIDATION_ERROR | 400 | 参数绑定失败 |
| ConstraintViolationException | VALIDATION_ERROR | 400 | 约束验证失败 |
{
"success": true,
"code": "SUCCESS",
"message": "成功",
"data": {
// 业务数据
}
}{
"success": false,
"code": "ERROR_CODE",
"message": "错误描述信息",
"data": null
}{
"code": 429,
"message": "频率限制,请稍后再试",
"success": false
}X-RateLimit-Limit: 限流阈值X-RateLimit-Remaining: 剩余请求次数X-RateLimit-Reset: 限流重置时间戳RATE_LIMIT_EXCEEDED, WECHAT_PAY_FREQUENCY_LIMITED: 指数退避重试INTERNAL_ERROR, WECHAT_PAY_SERVICE_ERROR: 延迟重试VALIDATION_ERROR, PARAM_ERROR: 不应重试,修正参数SIGNATURE_INVALID, IP_NOT_ALLOWED: 不应重试,检查配置SIGNATURE_INVALIDIP_NOT_ALLOWEDBATCH_NO_EXISTS, WECHAT_PAY_*| 版本 | 日期 | 说明 |
|---|---|---|
| 1.0 | 2025-11-11 | 初始版本,整理所有错误码 |
X-App-Id / X-Merchant-Id),平台现已支持:X-Client-Id、X-Biz-Merchant-IdX-App-Id、X-Merchant-Id