错误¶
为简化您的流程 Adapay SDK 会在内部完成对请求状态码的处理,您将直接获得响应数据,如有异常,则异常信息包含在响应数据中,示例如下(仅以支付为例):
Java
// 调用支付创建方法,获取 Payment对象
payment ch = payment.create(paymentParams);
// 返回数据处理
if(ch.isError()) {
// TODO 进行错误处理...
// payment 对象 中的 failed_code/failed_msg 等参数包含了错误信息
} else {
// TODO 进行正常处理...
}
错误响应数据¶
Adapay 的错误响应中会包括错误码 error_code
、简单的描述信息 error_msg
及用来描述错误发生原因的信息。
错误代码中的 error_msg
只是为每一个错误给调用方提供一个简单的解释,我们推荐结合使用 error_type
和 error_code
来区分不同的错误,并显示自定义的文本给终端用户或舍弃不重要的错误码,而不是将 error_msg
的内容直接显示给终端用户。
错误参数说明¶
参数 |
描述 |
---|---|
error_code |
错误码,详见 错误返回码表 |
error_msg |
返回具体的错误描述 |
error_type |
错误类型,详见 错误类型表 |
status |
状态描述 |
invalid_param |
当发生参数错误时返回具体的参数名,便于定位错误原因,如 id |
返回数据示例¶
{
"error_code":"request_param_error",
"error_msg":"金额格式非法,格式为 0.00",
"error_type":"invalid_request_error",
"status":"failed",
"invalid_param":"transAmt"
}
错误类型表¶
类型 |
说明 |
---|---|
invalid_request_error |
请求错误,传入了不正确的地址、参数或值 |
api_error |
Adapay 服务器出现的异常错误 |
channel_error |
第三方支付渠道出现的错误导致请求出现错误,通常您需要对这些可能出现的情况进行处理或者联系我们 |
错误返回码表¶
返回码 |
说明 |
---|---|
request_parameter_error |
请求参数错误 |
system_exception |
系统异常 |
config_exception |
配置错误 |
security_exception |
签名错误 |
token_revoke_error |
Token 注销失败 |
token_apply_error |
Token 申请失败 |
token_invalided |
Token 已失效 |
payment_id_not_exists |
对应支付记录不存在 |
request_order_no_repeate |
请求订单号重复 |
channel_error |
通道异常 |
channel_response_code_fail |
支付渠道响应码错误 |
mer_not_register |
商户未入驻 |
user_identity_not_exist |
未获取到用户唯一标识,请重试 |
mer_acct_id_not_exists |
商户子账号不存在 |
user_not_acct_id |
用户未开立结算账户或账户状态异常 |
user_not_exist |
分账用户未开户或用户状态异常 |
user_repeate |
分账用户不能重复 |
div_members_not_blank |
延时分账模式,分账串必须为空 |
div_members_num_over |
分账方个数不能超过 7 个 |
agent_mer_conf_error |
代理商配置错误 |
risk_trade |
风控拦截 |
order_id_not_exists |
订单记录不存在 |
fee_not_config |
费率未配置 |
fee_amt_not_correct |
手续费承担方分账金额小于手续费 |
pay_channel_not_config |
支付渠道未配置 |
cash_card_unbind |
用户未绑定取现卡 |
cash_log_exixt |
取现记录已存在 |
mer_settle_not_config |
商户结算配置不存在 |
cash_not_config |
取现功能未开通 |
cash_fee_rate_not_config |
取现手续费率未配置 |
cash_amt_too_small |
取现金额未大于取现手续费 |
refund_repeate_request |
请求过于频繁 |
refund_payment_order_not_success |
原支付交易未成功 |
refund_amt_over |
退款金额超过订单金额 |
refund_call_limit |
退款次数超过限制 |
order_no_used |
订单号已使用,请用新的订单号发起交易。 |
refund_div_amt_over |
退款分账金额超过订单分账金额 |
refund_div_not_exisit |
退款分账信息存在未分账对象 |
refund_amt_error |
退款金额与分账金额不一致 |
refund_div_repeat |
退款分账信息中存在重复对象 |
refund_div_unmatch |
该笔退款已无可退分账 |
refund_delay_not_support |
延时分账目前只支持全额退款 |
refund_type_error |
该交易为延时分账,请传入支付确认对象id进行退款或调用支付撤销接口进行支付撤销 |
refund_merchant_not_match |
支付和退款商户不匹配 |
close_order_exists |
关单记录已存在,不允许重复关单 |
trans_less_than_one_min |
交易时间小于一分钟,无法关单 |
payment_order_not_exist |
支付交易不存在 |
payment_order_is_succeeded |
交易已成功,不允许关单 |
payment_order_is_failed |
交易已失败,不允许关单 |
payment_order_is_not_created |
交易未创建成功,不允许关单 |
channel_close_fail |
通道关单失败 |
reverse_app_id_not_exist |
app_id不存在 |
reverse_payment_order_not_success |
原支付交易未成功 |
reverse_payment_order_type_error |
原支付交易类型错误 |
reverse_order_is_exist |
撤销订单号已存在 |
reverse_call_limit |
支付撤销次数超过限制 |
reverse_amt_over |
撤销金额超过订单金额 |
reverse_id_not_exist |
撤销id不存在 |
reverse_amt_error |
撤销金额错误 |
fee_flag_only_one |
手续费承担方有且只能有一个 |
div_amount_not_equal_confirm_amt |
分账对象总金额必须等于确认金额 |
div_member_id_repeat |
分账对象member_id重复 |
div_member_id_not_exist |
分账对象member_id不存在或已禁用 |
payment_not_success |
支付对象未成功 |
paymemt_pay_mode_not_delay |
支付对象非延时分账模式,不支持调用该功能 |
div_member_id_not_exist_settle_account |
分账对象member_id结算账户未创建或已删除,不支持分账 |
confirm_amt_lt_fee_amt |
确认金额不能小于手续费金额 |
div_amount_lt_fee_amt |
手续费承担方金额不能小于手续费金额 |
confirm_amt_over_limit |
当前确认金额 > 支付金额 - 已支付确认金额 - 已支付撤销金额 |
payment_confirm_not_exist |
支付确认对象不存在 |
trans_amt_lt_fee_amt |
交易金额不能小于手续费金额 |
mer_base_acct_not_exist |
商户基本账户不存在 |
balance_pay_failed |
余额支付失败 |
not_support_out_fee |
该业务暂不支持手续费外扣 |
refund_already_finished |
该笔交易已退款 |
balance_refund_failed |
余额支付退款失败 |