错误码

为简化您的流程 SPIN 会在内部完成对请求状态码的处理,您将直接获得响应数据,如有异常,则异常信息包含在响应数据中,示例如下(仅以支付为例):

Java

// 调用SPIN的接口获得的返回报文,转换为JSON格式
JSONObject jsonRes = JSON.parseObject(responseStr);
String responseCode = jsonRes.getString("resp_code");
// resp_code为10000时代表接口调用成功
if ("10000".equals(responseCode)) {
        // 成功调用接口
        String responseData = jsonRes.getString("data");
        String responseSign = jsonRes.getString("sign");
        // 使用汇付公钥验签
        if (!RsaUtils.verify(responseData, PUBLIC_KEY, responseSign)) {
                // 验签失败处理
                return;
        }
        JSONObject dataObj = JSON.parseObject(responseData);

        String subRespCode = dataObj.getString("sub_resp_code");
        String subRespDesc = dataObj.getString("sub_resp_desc");
        // 业务处理成功时业务返回码为00000000
        if ("00000000".equals(subRespCode)) {
                // 业务处理成功
                System.out.println("处理成功");
        } else {
                // 业务处理失败
                System.out.println("处理失败");
        }

} else {
        // 调用接口出错时,resp_desc为错误描述
        String responseCode = jsonRes.getString("resp_desc");
        // 调用错误处理
}

错误响应数据

SPIN 的错误响应中会包括错误码 resp_code、简单的描述信息 resp_desc 及用来描述错误发生原因的信息。

错误代码中的 resp_code 以及 resp_desc 只是为每一个错误给调用方提供一个简单的解释,resp_code 返回成功,仅代表SPIN接口调用成功,此时会返回业务报文 data

至于业务处理是否成功,需要获取业务报文中的业务返回码 sub_resp_code 以及业务返回描述 sub_resp_desc,详见 业务返回码

错误参数说明

参数 描述
resp_code 错误码,详见 网关返回码
resp_desc 返回具体的错误描述

返回数据示例

{
  "resp_code":"40002",
  "resp_desc":"验签失败"
}

网关返回码

返回码 说明
10000 成功调用
20000 服务不可用请联系客服
20001 权限不足
40001 无效参数
40002 验签失败

业务响应数据

SPIN 的业务响应数据中会包括业务返回码 sub_resp_code、业务返回描述 sub_resp_desc 以用来描述业务处理的具体信息。

业务错误参数说明

参数 描述
sub_resp_code 业务返回码,详见 业务返回码
sub_resp_desc 业务返回描述,返回具体的业务处理描述

返回数据示例

{
  "sub_resp_code":"request_param_error",
  "sub_resp_desc":"金额格式非法,格式为 0.00"
}

业务返回码

扫码类返回码

适用扫码交易、出金、账户类交易

返回码 说明
00000000 处理成功,实际交易结果以 trans_stat 为准
00000100 交易正在处理中
10000000 无效参数
10000001 原交易没有处理完成
10000002 退款金额大于可退金额
10000003 退款金额大于待确认金额
10000004 手续费退款金额大于可退金额
10000005 银联聚合补账不允许退款
10000006 必须传入分账串
10000007 该退款不支持传入分账
10000008 退款分账金额不能大于可退分账金额
10000009 该交易不支持部分退款
10000010 含有未知的子客户号
10000011 手续费子客户和原交易的不一致
10000012 优惠交易传入的分账金额总和不等于结算金额
10000013 分账金额总和不等于退款订单金额
10000014 数据库更新失败
10000015 不允许关闭一分钟以内的订单
10000016 原订单已为终态,请发起查询交易获取
10000017 该交易暂不支持银联二维码
10000018 关单失败
10000019 手续费子客户和原交易的不一致
10000020 没有退款权限
10000021 没有分账退款权限
10000022 退款分账不能为空
20000000 重复交易
20000002 权限不足
20000003 账户已被冻结
20000004 交易不存在
20000005 商户不存在
20000006 商户状态异常
20000007 结算卡不存在
20000008 账户信息不存在
20000009 手续费账户信息不存在
20000010 SSP子客户号和账户号无效
20000011 手续费未配置
20000012 分账金额不等于订单总金额
20000013 交易未完全成功
20000014 已无可确认金额
20000015 确认参数或确认手续费承担方式与原交易冲突
20000016 原交易发起方与此交易不一致
20000017 交易非延迟入账
30000000 调用收银台退款接口失败
30000001 收银台校验失败
90000000 交易失败,请重试
90000001 交易存在风险,请稍后再试
90000002 风控拦截
99999999 系统异常,请稍后重试

线上交易返回码

适用于网银类交易、快捷、代扣类交易

返回码 说明
00000000 处理成功,实际交易结果以 trans_stat 为准
00000100 交易正在处理中
10000000 无效参数
10000001 原交易没有处理完成
10000002 退款金额大于可退金额
10000003 退款金额大于待确认金额
10000004 手续费退款金额大于可退金额
10000005 银联聚合补账不允许退款
10000006 必须传入分账串
10000007 该退款不支持传入分账
10000008 退款分账金额不能大于可退分账金额
10000009 该交易不支持部分退款
10000010 含有未知的子客户号
10000011 手续费子客户和原交易的不一致
10000012 优惠交易传入的分账金额总和不等于结算金额
10000013 分账金额总和不等于退款订单金额
10000014 数据库更新失败
10000015 不允许关闭一分钟以内的订单
10000016 原订单已为终态,请发起查询交易获取
10000017 该交易暂不支持银联二维码
10000018 关单失败
10000019 手续费子客户和原交易的不一致
10000020 没有退款权限
10000021 没有分账退款权限
10000022 退款分账不能为空
10000023 风控异常
20000000 重复交易
20000002 权限不足
20000003 账户已被冻结
20000004 交易不存在
20000005 数据库更新失败
20000006 商户状态异常
20000007 结算卡不存在
20000008 账户信息不存在
20000009 手续费账户信息不存在
20000010 子客户号和账户号无效
20000011 手续费未配置
20000012 充值仅支持借记卡
20000013 页面数据被篡改
20000014 订单已过期
20000015 短信发送频繁
20000016 请重新发送短信
20000017 短信发送中
20000018 用户不存在
20000019 绑卡信息不存在
20000020 贷记卡不支持充值
20000021 银行卡号不正确
20000022 订单信息不匹配
20000023 不支持该银行卡号
20000024 数据加解密异常
20000025 随机因子异常
20000026 银行卡相关信息不完整或格式不正确
20000027 商户证件信息不存在
20000028 商户不支持该银行
20000029 用户与商户关系不存在
20000030 无任何银行信息
20000031 充值不支持延时分账
20000032 代扣支付不支持贷记卡
20000033 未开通分期支付功能
20000034 未开通银行卡分期
20000035 无对应的分期费率
20000036 分期期数不支持
20000037 3期费率开关未开启
20000038 6期费率开关未开启
20000039 12期费率开关未开启
20000040 24期费率开关未开启
20000041 商户不存在
20000042 商户状态异常
20000043 企业商户不存在
20000044 个人商户不存在
20000045 银行返回异常
20000046 个人用户无法使用B2B网关
20000047 当前商户未配置支付银行,暂时无法使用网银支付功能
20000048 退款请求FPC收银台失败
20000049 退款请求OBC收银台失败
20000050 充值不支持分账
20000051 充值时入账信息中客户号的必须为当前主交易的客户号
20000052 分账比例配置异常
20000053 没有延时入账权限
20000054 手续费账户号未配置
20000055 交易金额必须大于手续费金额
20000056 获取支付手续费费率配置异常手续费类型错误
20000057 获取支付手续费配置异常(网银)
20000058 获取支付手续费配置异常(快捷、代扣)
20000059 获取支付手续费配置异常不支持当前手续费类型
20000060 获取支付手续费配置异常手续费交易类型错误
20000061 支付手续费配置不存在
20000062 手续费客户号与商户关系不存在
20000063 风控信息格式不正确
20000064 获取支付手续费配置异常(手机网页支付)
90000000 交易失败,请重试
90000001 交易存在风险,请稍后再试
99999999 系统异常,请稍后重试

商户进件返回码

适用于商户进件及商户配置管理类接口

返回码 说明
00000000 处理成功
00000001 基本参数校验失败;请检查请求参数
00000002 系统异常,请联系客服
00000003 系统异常,请联系客服
00000004 系统异常,请联系客服
00000005 系统异常,请联系客服
90000000 审核中
99999999 系统异常,请联系客服
00000100 交易正在处理中
00000101 交易失败,请重试
00000102 交易结果未知,请稍后查询
00000103 请求系统号无接口访问权限
00000104 交易存在风险,请联系客服
00000105 账户余额不足
00000106 商户状态异常
00000107 钱包户不存在
00000108 钱包户状态异常
00000109 解冻明细列表不能为空