支付(订单码支付)
入参
productCode String REQUIRED
商户可以使用的支付产品,基于商户与 Antom 之间的合同。对于订单码支付,该值固定为 IN_STORE_PAYMENT
。
paymentRequestId String REQUIRED
商户为识别支付请求而分配的专属 ID。Antom 使用此字段进行幂等性控制。
更多信息:
- 此为幂等字段。商户使用 paymentRequestId 字段来实现幂等性控制。对于使用相同 paymentRequestId 值发起的支付请求,如果达到最终状态(
S
或F
),则对同一请求应返回相同的结果。 - 最大长度:64 字符
order Order REQUIRED
订单信息,如买家信息、商户信息、订单描述和订单金额。
此参数也用于风险控制、监管、报告、用户支付结果展示等。
paymentAmount Amount REQUIRED
商户请求在订单货币中接收的支付金额。
paymentMethod PaymentMethod REQUIRED
由商户或收单机构用来收取支付的支付方式。
paymentExpiryTime Datetime
支付有效期是一个特定时间,超过这个时间后支付将失效。支付有效期过后,收单机构或商户必须终止订单处理。默认的支付有效期由合同确定。如果你想使用不同于默认时间的支付有效期,可以指定此字段。
注意:通常对于反扫支付,合同中的默认支付有效期是支付请求发送后3分钟。例如,请求在时间2019-11-27T12:00:01+08:30发送,支付有效期为2019-11-27T12:03:01+08:30。
更多信息:
- 值遵循 ISO 8601 标准格式。例如,“2019-11-27T12:01:01+08:00”。
paymentRedirectUrl URL
支付完成后用户被重定向到的链接。
更多信息:
- 最大长度:2048 字符
paymentNotifyUrl URL REQUIRED
用于接收支付结果通知的链接。
更多信息:
- 最大长度:2048 字符
paymentFactor PaymentFactor
指示支付场景。
settlementStrategy SettlementStrategy
支付请求的结算策略。
注意:在满足以下任一条件时指定此字段:
- 已签署多个结算合约,且有多个结算合约支持此交易。在这种情况下,使用此字段指定结算货币,以便从所有已签署的结算合约中选择用于此交易的合约。
- 当 paymentMethodType 的值为
CONNECT_WALLET
时。
merchantRegion String
商户或二级商户经营业务的国家或地区。遵循 ISO 3166 国家代码标准 的2位国家/地区代码。目前仅支持 US
, JP
, PK
, SG
。
注意:当使用 Antom 全球网关(GGW)产品时,此字段是必需的。
更多信息:
- 最大长度:2 字符
出参
result Result REQUIRED
请求结果包含状态和错误代码等信息。
paymentRequestId String
商户为识别支付请求而分配的专属 ID。
更多信息:
- 最大长度:64 字符
paymentId String
Antom 为识别支付而分配的支付 ID。
更多信息:
- 最大长度:64 字符
paymentAmount Amount
商户请求在订单货币中接收的支付金额。
pspCustomerInfo PspCustomerInfo
顾客的Alipay+支付方式信息。
注意: Alipay+ 移动支付提供商,是参与Alipay+ 核心服务的移动支付合作伙伴,也是与蚂蚁集团成员合作、面向用户或发卡机构提供支付服务的其他支付服务提供商。
challengeActionForm ChallengeActionForm
当支付结果未处于成功或失败的最终状态时,提供关于验证操作的信息。
redirectActionForm RedirectActionForm
重定向操作的信息
- 当用户重定向的方法是
GET
(method=GET
)时,redirectUrl 的值是一个可用于用户重定向的完整链接,。 - 当用户重定向的方法是
POST
(method=POST
)时,redirectUrl 的值是用户将被重定向到的完整链接的一部分。其他构建完整链接所需的参数在参数字段中提供。
注意:此字段在接口调用成功时返回。
orderCodeForm OrderCodeForm REQUIRED
提供订单代码的信息。
grossSettlementAmount Amount
净结算金额,等于交易金额乘以 settlementQuote 的值。
注意:当结算货币与交易货币相同时,此字段为空。
settlementQuote Quote
交易时结算货币与交易货币之间的汇率,仅在锁定汇率的情况下提供。
注意:当结算货币与交易货币相同时,此字段为空。
请求
响应
更多信息
本节提供了关于其他参数的额外信息。请参阅以下参数以了解详情:
productCode:
此参数的值是商家用于收款的支付产品,基于商家与 Antom 之间间的合同。当商家可以使用多个产品时,此参数是必需的。
order:
参数 order 包含商户、商品、物流和购买环境等信息。在支付过程中,这些信息主要用于 Antom 的风险控制或反洗钱检查。支付完成后,这些信息用于展示消费记录、监管报告等用途。
然而,Antom 不会验证 order 中的金额与支付请求中的金额是否一致,订单信息也不用于资金操作。如果需要 Antom 提供的风险控制功能,可以使用 env 字段。
paymentMethod:
paymentMethod 的值为 CONNECT_WALLET
,表示 Antom 使用从 Antom 生成的订单码收款。
paymentExpiryTime:
支付执行方必须确保支付在过期时间后不会成功。如果请求中未指定此参数,则过期时间由支付执行方决定。
paymentFactor:
paymentFactor.inStorePaymentScenario 的值为 OrderCode
,表明 Antom 在此支付中需要生成一个订单码。
paymentId:
如果响应中未返回此字段,您可以使用 paymentRequestId 字段发起 支付结果查询(线下商店)和 取消支付 请求。
结果处理逻辑
调用 支付(订单码支付)接口后,可能从 Antom返回以下结果:
- Antom 返回的结果中,result.resultStatus 为
S
,表示商家需要使用参数展示支付信息,以便用户可以继续操作。 - Antom 返回的结果中,result.resultStatus 为 F,说明支付请求失败。
- Antom 返回的结果中,result.resultStatus 为 U,商家需要再次调用 支付(订单码支付)接口。
结果码
结果码 | 值 | 结果码信息 | 行动建议 |
---|---|---|---|
SUCCESS | S | 成功 | 支付成功,无需进一步操作。 |
ACCESS_DENIED | F | 访问被拒绝。 | 请联系 Antom 技术支持以获取详细原因。 |
INVALID_API | F | 调用的接口无效或未激活。 | 请联系 Antom 技术支持解决此问题。 |
CLIENT_INVALID | F | 客户端 ID 无效。Antom 对客户端 ID 有限制。 | 请检查客户端 ID 是否正确,或联系 Antom 技术支持以获取详细原因。
|
CURRENCY_NOT_SUPPORT | F | 货币不支持。 | 请联系 Antom 技术支持以获取详细原因。 |
INVALID_CONTRACT | F | 合同中的参数值与当前交易不符。 | 检查合同中的参数值是否与当前交易匹配。如果匹配,请联系 Antom 技术支持解决问题。 |
INVALID_MERCHANT_STATUS | F | 商户状态异常,存在限制。 | 请联系 Antom 技术支持以获取详细原因。 |
INVALID_SIGNATURE | F | 签名验证失败。请求的私钥与 Antom 开发者中心的公钥不匹配。 | |
KEY_NOT_FOUND | F | 未找到 Antom 或商户的私钥或公钥。 | 检查私钥或公钥是否存在。如果不存在,请在 Antom 开发者中心上传私钥。 |
MEDIA_TYPE_NOT_ACCEPTABLE | F | 服务器不支持客户端可接受的媒体类型。 | 检查媒体类型是否正确,并使用 Antom 接受的媒体类型。 |
MERCHANT_KYB_NOT_QUALIFIED | F | 由于商户的 KYB 状态,支付失败。商户要么未完成 KYB,要么 KYB 状态不符合此交易要求。 | 请联系 Antom 技术支持以获取详细原因。 |
MERCHANT_NOT_REGISTERED | F | 商户未注册。 | 请使用注册接口注册商户。如果无法调用注册接口,请联系 Antom 技术支持。 |
METHOD_NOT_SUPPORTED | F | 服务器不支持请求的 HTTP 方法。仅支持 POST 方法。 | 确保 HTTP 方法为 |
NO_INTERFACE_DEF | F | 接口未定义。 |
检查链接是否正确。请参考接口文档中的端点信息。 |
NO_PAY_OPTIONS | F | 交易不支持该货币。 | 请检查钱包是否支持该货币,或者检查钱包和货币是否与合约一致。如需详细原因,请联系 Antom 技术支持。 |
ORDER_IS_CANCELED | F | 您发起的请求具有与之前已支付并被取消的交易相同的 paymentRequestId。 | 使用新的 paymentRequestId 重新发起支付。 |
ORDER_IS_CLOSED | F | 您发起的请求具有与已存在并关闭的交易相同的 paymentRequestId 。 | 使用新的 paymentRequestId 重新发起支付。 |
PARAM_ILLEGAL | F | 缺少必需参数,或存在非法参数。例如,非数字输入、无效日期,或参数的长度和类型错误。 | 检查并验证当前接口所需的请求字段(包括头部字段和正文字段)是否正确传递并有效。 |
PAYMENT_AMOUNT_EXCEED_LIMIT | F | 支付金额超过了合同或支付方式允许的最大金额。 | 请检查支付金额是否超过限制,或尝试使用更低的金额重试。如需了解具体限制,请联系 Antom 技术支持。 |
PAYMENT_COUNT_EXCEED_LIMIT | F | 支付次数超过了支付方式指定的限制。 | 请联系 Antom 技术支持了解具体限制。 |
PAYMENT_NOT_QUALIFIED | F | 商户未注册或被禁止支付,因此不具备支付资格。 | 请联系 Antom 技术支持以获取详细原因。 |
PROCESS_FAIL | F | 发生了常见的业务失败。 | 获取 Antom 技术支持前请勿重试。 |
REPEAT_REQ_INCONSISTENT | F | 金额或货币与先前请求不同。 | 请确保请求中的所有字段相同,或使用新的 paymentRequestId 重新发起支付。 |
RISK_REJECT | F | 因风险控制,请求被拒绝。 | 提示用户因风险控制失败,请求被拒绝。 |
SYSTEM_ERROR | F | 发生系统错误。 | 获取 Antom 技术支持前请勿重试。 |
USER_NOT_EXIST | F | 用户在钱包端不存在。 | 请联系 Antom 技术支持以获取详细原因。 |
PAYMENT_IN_PROCESS | U | 支付正在处理中。 | 使用新的 paymentRequestId 重新发起支付。 |
REQUEST_TRAFFIC_EXCEED_LIMIT | U | 请求流量超过了限制。 | 再次调用接口解决问题。如果问题未解决请联系 Antom 技术支持。 |
UNKNOWN_EXCEPTION | U | 由于未知原因,接口调用失败。 | 再次调用接口解决问题。如果问题未解决,请联系 Antom 技术支持。 |