submitPayment()
该方法用于向服务端发起支付请求。当买家点击您自定义的支付按钮后,SDK 会根据不同支付方式的特性,自动处理支付信息、推进交易流程,并在需要时执行 3D 验证等操作。支付结果及异常信息将通过异步回调返回。
方法签名
调用此方法时,请使用以下标准方法签名格式:
JavaScript
TypeScript
参数
以下参数用于配置支付请求的提交选项。
参数 | 类型 | 是否必需 | 描述 |
Object | 否 | 提交支付请求的配置选项。 |
options
参数 | 类型 | 是否必需 | 描述 |
handleActions | Boolean | 否 | 表示是否由 SDK 处理自动跳转。有效值为:
|
Object | 否 | 用于提交收货地址信息。 |
shippingInfo
参数 | 类型 | 是否必需 | 描述 |
Object | 是 | 收货地址信息。 | |
Object | 是 | 收货人名称。 | |
shippingPhoneNo | String | 是 | 收货人的电话号码。格式为 E.164 国际标准格式。 |
shippingAddress
参数 | 类型 | 是否必需 | 描述 |
region | String | 是 | |
state | String | 是 | 州、省或符合 ISO 3166-2 标准的两到三位字母的地区代码。 |
city | String | 是 | 城市名称。 |
address1 | String | 是 | 地址 1。 |
address2 | String | 是 | 地址 2。 |
zipCode | String | 是 | 邮编。 |
shippingName
参数 | 类型 | 是否必需 | 描述 |
firstName | String | 是 | 收货人名字。 |
lastName | String | 是 | 收货人姓氏。 |
middleName | String | 否 | 收货人中间名(若有则需要传入)。 |
fullName | String | 否 | 收货人全名。 |
返回值
返回一个类型为
Promise
的对象,解析后可获得包含支付结果的对象。参数 | 类型 | 是否必需 | 描述 |
status | String | 是 | 支付状态。可根据 status 的值简化集成处理。您也可根据 error?.code 来进行精细化的异常处理。有效值为:
|
userCanceled3D | Boolean | 否 | 表示买家是否主动关闭 3D 安全认证弹窗。有效值为:
|
Object | 否 | 支付会话信息。 | |
Object | 否 | 该参数仅在操作失败时返回,且为错误对象,包含 code 和 message 参数。若无返回则操作成功。 |
session
参数 | 类型 | 是否必需 | 描述 |
Object | 否 | 当支付流程需要额外步骤时(例如手动处理唤端),此字段会提供必要的信息。 |
nextAction
参数 | 类型 | 是否必需 | 描述 |
applinkUrl | String | 否 | App Link 链接(iOS Universal Link 或 Android App Link)。 |
schemeUrl | String | 否 | 自定义 URL Scheme 链接。 |
normalUrl | String | 是 | 普通 H5 页面链接。 |
error
参数 | 类型 | 是否必需 | 描述 |
code | String | 是 | 错误码。 |
message | String | 是 | 错误信息。 |
traceId | String | 否 | 追踪 ID,用于问题排查。 |
context | Any | 否 | 错误上下文信息。 |
错误码
UNKNOWN_EXCEPTION | PROCESSING | 未知异常。请检查付款情况并联系商户。 | 由于未知原因,接口调用异常。 | 建议从服务端轮询支付结果。若未获取到支付结果,可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
INQUIRY_PAYMENT_SESSION_FAILED | FAIL | 订单状态异常。请检查付款情况并联系商户。 | 支付会话过期。 | 订单已超时关单,使用新的 paymentRequestId 重新发起支付。 |
UI_STATE_ERROR | FAIL | 请求异常,交易无法发起。 | 集成代码异常,请自行排查。 如问题未解决,请联系 Antom 技术支持。 | |
ERR_DATA_STRUCT_UNRECOGNIZED | 无 | 请求异常,交易无法发起。 | SDK未返回支付必要信息。 | 请联系 Antom 技术支持获取详细原因。 |
USER_BALANCE_NOT_ENOUGH | FAIL | 买家余额不足。请充值或选择其它支付方式。 | 由于对应支付方式的买家余额不足,支付无法完成。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
ORDER_NOT_EXIST | FAIL | 订单状态异常。请检查付款情况并联系商户。 | 订单不存在。 | 请联系 Antom 技术支持获取详细原因。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
PROCESS_FAIL | FAIL | 支付失败。请检查付款情况并联系商户。 | 发生了常见的业务失败。 | 请联系 Antom 技术支持获取详细原因。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
ORDER_IS_CANCELLED | FAIL | 订单状态异常。请检查付款情况并联系商户。 | 订单已撤销。 | 订单已取消,如需再次支付,请使用新的 paymentRequestId 重新发起支付。 |
RISK_REJECT | FAIL | 风控拒绝。建议换卡重试或联系发卡行。 | 由于风险控制,交易无法进一步处理。如果买家已为交易付款,交易将被退款。 | 弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
ORDER_IS_CLOSED | FAIL | 订单状态异常。请检查付款情况并联系商户。 | 您发起的请求与已关闭交易的paymentRequestId相同。 | 订单已超时关单,使用新的 paymentRequestId 重新发起支付。 |
ACCESS_DENIED | FAIL | 支付失败。请检查付款情况并联系商户。 | 访问被拒绝。 | 请联系 Antom 技术支持获取详细原因。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
CARD_EXPIRED | FAIL | 卡片已过期,请核对过期日期或使用其他卡片。 | 用于交易的银行卡已过期。 | Antom 已为您提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
INVALID_EXPIRY_DATE_FORMAT | FAIL | 卡片过期时间不正确,请核对过期日期或使用其他卡片。 | expiryYear或expiryMonth的格式不正确。 | Antom 已为您提示买家,您无需进行操作。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
INVALID_EXPIRATION_DATE | FAIL | 卡片过期时间不正确,请核对过期日期或使用其他卡片。 | paymentMethod.paymentMethodMetaData.expiryYear或paymentMethod.paymentMethodMetaData.expiryDate的值无效。 | Antom 已为您提示买家,您无需进行操作。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
INVALID_CVV | FAIL | 卡片 CVV 不正确,请核对 CVV 或使用其他卡片。 | 用于交易的银行卡 CVV 无效。 | Antom 已为您提示买家,您无需进行操作。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
INVALID_CARD_NUMBER | FAIL | 卡号不正确,建议换卡重试或联系发卡行。 | 用于交易的银行卡号无效。 | Antom 已为您提示买家,您无需进行操作。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
SELECTED_CARD_BRAND_NOT_AVAILABLE | FAIL | 卡品牌不支持,建议换卡重试或联系发卡行。 | 您指定用于交易的银行卡品牌不被支持。 | 您指定的银行卡品牌不支持,请自行排查。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
CARD_NOT_SUPPORTED | FAIL | 卡片不支持。建议换卡重试或联系发卡行。 | 用于交易的银行卡不被支持。 | Antom 已为您提示买家,您无需进行操作。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
CARD_BIN_QUERY_ERROR | FAIL | 卡号不正确。建议换卡重试或联系发卡行。 | 用于交易的银行卡号无效。 | Antom 已为您提示买家,您无需进行操作。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
PAYMENT_IN_PROCESS | PROCESSING PENDING | 支付正在处理中,请等待支付完成。 | 支付正在处理中。 | PROCESSING 代表 SDK 轮询后未查询到支付结果,建议从服务端轮询支付结果。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用submitPayment() 。您可从响应中读取userCanceled3D字段判断买家是否主动关闭 3D 弹窗:
|
CURRENCY_NOT_SUPPORT | FAIL | 商户不支持该币种,交易无法发起。 | 币种不受支持。 | 请联系 Antom 技术支持获取详细原因。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
INVALID_CARD | FAIL | 卡号无效,请核对卡片详细信息或使用其他卡片。 | 银行卡无效。可能是银行卡号无法识别,银行卡没有对应的发卡行,或者卡号格式错误。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
ISSUER_REJECTS_TRANSACTION | FAIL | 发卡行拒绝交易,建议换卡重试或联系发卡行。 | 发卡行拒绝交易。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
INVALID_MERCHANT_STATUS | FAIL | 商户状态异常,交易无法发起。 | 由于存在限制,您的状态异常。 | 请联系 Antom 技术支持获取详细原因。 |
KEY_NOT_FOUND | FAIL | 未知异常。请检查付款情况并联系商户。 | 找不到 Antom 或商户的私钥或公钥。 | 请联系 Antom 技术支持获取详细原因。 |
MERCHANT_KYB_NOT_QUALIFIED | FAIL | 商户状态异常,交易无法发起。 | 由于您的 KYB 状态异常导致支付失败。您可能未完成 KYB,或者 KYB 状态不适用于此交易。 | 请联系 Antom 技术支持获取详细原因。 |
NO_PAY_OPTIONS | FAIL | 没有可用的支付选项。 | 没有可用的支付选项。 | 请联系 Antom 技术支持获取详细原因。 |
PARAM_ILLEGAL | FAIL | 未知异常。请检查付款情况并联系商户。 | 缺少必需的参数,或者存在非法参数。例如,非数字输入、无效的日期,或者参数的长度和类型错误。 | 请联系 Antom 技术支持获取详细原因。 |
PAYMENT_AMOUNT_EXCEED_LIMIT | FAIL | 商户支付金额超过限额,交易无法发起。 | 支付金额超过了合同或支付方式允许的最大金额。 | 检查支付金额是否超过限制,或使用较低金额重试支付。使用新的 paymentRequestId 更换金额后重新发起支付。 |
PAYMENT_COUNT_EXCEED_LIMIT | FAIL | 商户支付次数超过限制使用次数,交易无法发起。 | 支付次数超过了支付方式规定的限制。 | 请联系 Antom 技术支持获取详细原因。 |
PAYMENT_NOT_QUALIFIED | FAIL | 商户状态异常,交易无法发起。 | 您不具备支付资格,可能是因为未注册、未签订自动扣款协议或被禁止支付。 | 请联系 Antom 技术支持获取详细原因。 |
SUSPECTED_CARD | FAIL | 风控拒绝。建议换卡重试或联系发卡行。 | 银行卡涉嫌欺诈。例如,银行卡可能被盗或受限。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
SYSTEM_ERROR | FAIL | 未知异常。请检查付款情况并联系商户。 | 发生系统错误。 | 请联系 Antom 技术支持获取详细原因。建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
USER_AMOUNT_EXCEED_LIMIT | FAIL | 金额超限。使用小于或等于账户可用余额的金额重新发起支付。 | 支付金额超过了买家的支付限额。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
USER_KYC_NOT_QUALIFIED | FAIL | 买家状态异常。建议换卡重试或更换支付方式重试。 | 由于买家的 KYC 状态,支付失败。买家可能未完成 KYC,或者 KYC 状态不满足此交易要求(例如,支付金额或产品信息的限制)。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
USER_PAYMENT_VERIFICATION_FAILED | FAIL | 买家状态异常。建议换卡重试或联系发卡行。 | 买家在支付方式端被限制支付。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
USER_STATUS_ABNORMAL | FAIL | 买家状态异常。建议换卡重试或联系发卡行。 | 买家在支付方式端的状态异常。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
DO_NOT_HONOR | FAIL | 支付被发卡行拒绝。建议换卡重试或联系发卡行。 | 支付被发卡行拒绝。 | 建议弹窗提示买家。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
EXTERNAL_RESOURCE_LOAD_FAILED | FAIL | 请求异常,请检查网络状况或者设备情况。 | Google/Apple 资源异常。 | 买家网络异常或设备不支持 Google、Apple 或其他依赖第三方平台的支付。建议弹窗提示买家检查买家执行环境。 |
SUBMIT_PAYMENT_TIMEOUT | PROCESSING | 请求异常,交易无法发起。 | 提交支付时网络异常。 | 买家网络异常或 Antom 服务异常,尝试从服务端轮询支付结果。若未查到支付结果,可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
PAYMENT_RESULT_TIMEOUT | PROCESSING | 请求异常,交易无法发起。 | 获取支付结果时网络异常。 | 尝试从服务端轮询支付结果。若未查到支付结果,可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
USER_CANCELED | PROCESSING | 无。 | 买家手动关闭展码/引导页弹窗。 | 可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
FORM_INVALID | FAIL | 无。 | 要素信息填写错误。 | Antom 已为您提示买家,您无需进行操作。可以在支付会话有效期内使用原有的 paymentSessionData 重新调用 submitPayment() 。 |
FRAUD_REJECT | FAIL | 很抱歉,本次交易暂时无法处理。如涉及付款,款项将自动退回至您的支付账户,无需额外操作。 | 由于风险控制,交易无法进一步处理。如果买家已为交易付款,交易将被退款。 | 风控拦截:该笔交易因触发风险控制规则被终止。 已付款订单将自动发起退款,退款到账时间取决于支付渠道。 |
SECURITY_REJECT | FAIL | 银行出于安全考虑拒绝了您的申请。请联系您的银行或尝试使用其他银行卡。 | 由于发卡行检测到安全问题,交易被拒绝。 | 银行拦截:发卡行基于其风控策略拒绝了交易(可能原因:卡片状态异常、跨境交易限制、单日限额等)。 商户处理建议:
|
TRANSACTION_NOT_PERMITTED | FAIL | 不允许交易。请稍后再试。 | 发卡行拒绝了该卡/账户的交易。 | 银行拒绝:发卡行未授权该笔交易。 可能原因:
处理建议:引导买家换卡支付或联系银行核实,此错误通常可通过更换支付方式解决。 |
RESTRICTED_CARD | FAIL | 卡片受限。请联系您的银行或尝试其他卡片。 | 发卡行限制了该卡的使用范围。 | 卡片使用范围受限:发卡行对该卡的使用场景进行了限制。 处理建议:
|
USER_PAYMENT_VERIFICATION_FAILED | FAIL | 买家状态异常。建议换卡重试或联系发卡行。 | 买家在支付方式端被限制支付。 | 弹窗提示买家。 |
DO_NOT_HONOR | FAIL | 支付被发卡行拒绝。建议换卡重试或联系发卡行。 | 支付被发卡行拒绝。 | 弹窗提示买家。 |
PAYMENT_AMOUNT_EXCEED_LIMIT | FAIL | 商户状态异常,交易无法发起。 | 支付金额超过了合同或支付方式允许的最大金额。 | 检查支付金额是否超过限制,或使用较低金额再试一次。 |
RE_ENTER_TRANSACTION | FAIL | 订单状态异常。请检查付款情况并联系商户。 | 交易暂时无法处理。 | 交易暂时无法处理。建议引导买家更换支付方式,或联系银行确认原因后重试。 |
BLOCKED_FIRST_USED | FAIL | 被银行阻止。请联系您的银行或尝试其他卡片。 | 卡片可能因以下原因被临时冻结:未激活首次使用,或受特殊条件限制(例如新卡未激活)。 | 该卡为新卡未激活,或发卡行设置了特殊使用条件(如首刷需在柜台办理)。建议引导买家:
|
POLICY | FAIL | 银行拒绝了付款。请重试或使用其他卡片。 | 政策限制。 | 卡片政策限制:发卡行对该卡设置了交易类型限制。 处理建议:
|
ACCOUNT_CLOSED | FAIL | 不允许使用该卡。请尝试其他卡片。 | 账户已关闭。 请核实账户号码的准确性,同一银行卡号或令牌请勿再次处理。 | 账户状态异常:发卡行返回账户已关闭。 同一卡号请勿再次尝试,该错误为终态错误,重复提交不会成功,且可能触发平台或银行风控规则,建议直接引导买家换卡。 |
LIFECYCLE | FAIL | 您的卡号/到期日期/CVV 无效。 | 由于无效的卡片数据,交易被拒绝。 | 卡片数据无效:发卡行或卡组织校验卡片信息失败。 可能原因:
|
PICKUP_CARD | FAIL | 不允许使用该卡。请尝试其他卡片。 | 发卡行要求商户扣留支付卡。 此类情况通常出现在疑似伪卡或盗刷场景中。 | 发卡行要求扣留卡片。 高风险,发卡行指示该卡存在欺诈风险(疑似伪卡或盗刷),要求扣留卡片。如为线下场景,应按银行要求扣留卡片并联系授权中心;如为线上场景,应立即终止交易,记录相关信息,并建议买家联系发卡行。 |
INVALID_AMOUNT | FAIL | 付款金额无效。请核对金额后重试。 | 发卡行因各种原因拒绝交易,例如指定金额无效或超过最大金额限制。 | 金额相关拒绝:发卡行因金额问题拒绝交易。 可能原因:
|
DOMESTIC_DEBIT_TRANSACTION_NOT_ALLOWED | FAIL | 支付受限。 该类型银行卡暂不支持此交易,请更换其他付款方式。 | 不允许国内借记卡交易(仅限区域使用)。 | 卡片类型受限:当前渠道/场景不支持国内借记卡交易。建议更换其他卡交易。 |
BLOCKED_BY_CARDHOLDER | FAIL | 银行卡暂不可用。 请更换其他付款方式完成支付。 | 该卡被买家锁定。 | 该卡已被持卡人主动锁定(可能通过银行应用程序挂失、冻结或设置安全锁)。建议引导买家:
|
INSTALLMENT_NOT_SUPPORTED | FAIL | 该卡不支持分期,请换卡支付。 | 该卡或商户不支持分期。 | 该卡未开通分期功能,或当前商户/交易场景不支持分期。建议:
|
PAYMENT_METHOD_SYSTEM_ERROR | FAIL | 系统繁忙。 支付系统暂时无法处理,请稍后重试或选择其他支付方式。 | 支付方式系统错误。 | 发卡行支付系统出现异常,建议引导买家稍后重试或更换支付方式。如报错持续,请联系技术支持排查渠道状态。 |
INVALID_INSTALLMENT_PLAN | FAIL | 分期付款次数有误,请修改选择分期期数后重试。 | 分期付款次数或间隔不正确。 | 分期参数错误:请求中的分期期数或分期间隔规则错误。请检查分期参数是否在支持的枚举值内,或联系渠道确认该卡支持的分期方案。 给商户的建议:弹框提示买家修改分期期数或者更换卡片重试。 |
INVALID_CPF | FAIL | 身份信息验证失败,请核实后重新填写。 | 提供的 CPF 号码无效。 | 买家提供的 CPF(巴西税号)格式错误或校验失败。请提示买家检查输入格式,或联系 Antom 技术支持排查是否需适配当地规则。 |
REFERRAL_ISSUER | FAIL | 该银行暂不支持此交易,请更换其他付款方式。 | 交易被发卡行拒绝。 | 交易被发卡行拒绝,发卡行未提供具体原因。建议引导买家:
|
INVALID_PIN | FAIL | PIN 码不正确或不符合要求,请重新输入或更换付款方式。 | 提供的 PIN 码不正确或不符合要求。 | PIN 码不正确或不符合要求(输错、格式不符或渠道要求在线 PIN 但未提供)。建议:
|
LAW_VIOLATION | FAIL | 您的银行暂不支持该笔交易,建议:
| 发卡行拒绝了该交易。 | 银行拒绝:发卡行未授权该笔交易。 可能原因:
处理建议:引导买家换卡支付或联系银行核实,此错误通常可通过更换支付方式解决。 |
LOST_CARD | FAIL | 银行卡状态异常。 请联系发卡行或更换其他付款方式完成支付。 | 挂失卡(欺诈账户)。 | 挂失卡或欺诈账户: 该卡已被标记为挂失、被盗或涉及欺诈交易。引导买家更换其他银行卡。 |
STOLEN_CARD | FAIL | 银行卡状态异常。 请联系发卡行或更换其他付款方式完成支付。 | 被盗卡(欺诈账户)。 | 被盗卡或欺诈账户:该卡已被标记为被盗卡,涉及欺诈交易。对外统一提示卡片状态异常,引导买家更换其他银行卡。 |
INVALID_TRANSACTION | FAIL | 交易失败请勿重试,并联系 Antom 技术支持获取详情。 | 无效交易。 | 交易被判定为无效,可能原因:
建议检查请求参数完整性。 |
最佳实践
加载动画管理
调用
submitPayment()
方法前,您可以自行添加动画加载效果,并在 .then()
方法中处理回调时关闭动画加载效果。