错误码¶
为简化您的流程 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":"40002",
"resp_desc":"验签失败"
}
网关返回码¶
返回码 | 说明 |
---|---|
10000 | 成功调用 |
20000 | 服务不可用请联系客服 |
20001 | 权限不足 |
40001 | 无效参数 |
40002 | 验签失败 |
业务响应数据¶
SPIN 的业务响应数据中会包括业务返回码 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 | 解冻明细列表不能为空 |