全托管订阅支付
Antom Checkout Page 是一款高效便捷的低代码集成支付页面产品,支持多种主流支付方式并覆盖全球多个地区,满足不同市场和场景的需求。通过简单的开发配置,您即可快速搭建一个界面专业、功能齐全的收银台页面,为买家提供流畅便捷的支付体验,同时显著提升支付接入效率,助力业务增长。
本方案通过接口实现集成,在订阅支付场景中,买家在完成商品加购后可直接跳转至 Antom Checkout Page 进行支付,无需额外页面配置。
订阅支付体验
以下为集成 Checkout Page 首次订阅和后续扣款的用户体验:
首次订阅
后续扣款
支付流程
使用 Antom Checkout Page 全托管模式订阅支付的流程包括以下步骤:
卡支付、Google Pay 和 Apple Pay
APM 支付
订阅生命周期
以下图片分别展示了不同支付方式的订阅生命周期:
卡支付、Google Pay 和 Apple Pay
APM 支付
集成准备
- 已获得 client ID。
- 已完成密钥配置。
- 已完成异步通知接收地址的配置。
- 集成服务端 SDK 资源包,并完成接口库安装及请求示例初始化。具体操作请参阅服务端 SDK。
集成步骤
开始集成,请按照以下步骤操作:
- 创建支付会话
- 跳转至 Antom Checkout Page 页面
- 授权/支付结果通知
- (可选)请款并获取请款通知
- 获取订阅通知
步骤 1:创建支付会话 服务端
创建支付会话请求包含以下关键参数:
类型 | 参数 | 是否必传 | 描述 |
基础字段 | paymentRequestId | 是 | 授权支付请求单号,每次都需要唯一。 |
paymentAmount.currency | 是 | 支付币种。 | |
paymentAmount.value | 是 | 支付金额。按币种的最小单位设置,除 JPY、KRW 为元,其他均为分。 | |
paymentMethod.paymentMethodType | 是 | 支付方式枚举值。 | |
settlementStrategy.settlementCurrency | 否 | 结算币种。 | |
productCode | 是 | 产品码,在此场景中,此字段固定传 CASHIER_PAYMENT 。 | |
paymentRedirectUrl | 是 | 商户端支付结果页。需传入 HTTPS 地址,您根据支付结果进行动态渲染。 | |
paymentNotifyUrl | 否 | 授权支付结果通知地址,需传入 HTTPS 地址。此字段可通过接口传递,也可通过 Antom Dashboard 设置为固定值。若两者都设置,则接口传递的值优先。 | |
productScene | 是 | 场景码。 固定传 CHECKOUT_PAYMENT 。 | |
设备字段 | env.terminalType | 是 | 指定买家发起交易的端类型:
|
env.clientIp | 是 | 买家的 IP 地址。 | |
订单字段 | order.orderAmount | 是 | 订单金额 |
order.referenceOrderId | 是 | 商户端订单号 | |
order.orderDescription | 是 | 商户端订单描述 | |
order.buyer | 是 | 商户端买家信息。至少需要提供以下三者其中一个信息:
| |
订阅字段 | subscriptionInfo.subscriptionDescription | 是 | 订阅描述。 |
subscriptionInfo.subscriptionStartTime | 是 | 订阅关系生效时间,格式类似 2019-11-27T12:01:01+08:00,+08:00 代表东八区。 | |
subscriptionInfo.subscriptionNotifyUrl | 是 | 订阅关系通知接收地址,需传入 HTTPS 地址。 | |
subscriptionInfo.periodRule | 是 | 订阅周期,支持 YEAR 、MONTH 、WEEK 、DAY 四类周期。 | |
subscriptionInfo.subscriptionExpiryTime | 否 | 订阅创建过期的具体日期和时间。订阅过期后,订单必须终止。此参数的默认值:
注意:针对 APM 类支付方式,您需要设置订阅过期时间大于 74 分钟。 | |
3D 验证字段 | availablePaymentMethod.paymentMethodMetaData. is3DSAuthentication | 否 |
注意:卡支付场景下需设置为 true 做 3D 交易,保障首笔银行卡支付对买家进行身份验证。 |
以下为请求报文示例:
以下代码展示了一个响应的示例,其中包含以下关键参数:
- paymentSessionData:将返回给前端的支付会话数据。
- paymentSessionExpiryTime:支付会话的过期时间。
- normalUrl:Checkout Page 页面的跳转链接。
下表展示了响应代码中 result.resultStatus 字段可能返回的值,请您根据指引进行处理:
result.resultStatus | 信息 | 后续操作 |
S | 表示支付会话创建成功。 | |
F | 表示支付会话创建失败 | 请检查并验证当前接口所需的请求字段(包括头部字段和正文字段)是否正确传递并有效。 |
U | 表示由于未知原因支付会话创建失败。 | 请更换 paymentRequestId 重新调用接口以解决问题。如果问题未解决,请联系 Antom 技术支持。 |
注意:如果您未收到响应报文,可能是网络超时所致,请更换 paymentRequestId 重新调用接口以解决问题。
步骤 2:跳转至 Antom Checkout Page 页面(normalUrl)客户端
商户服务端拿到 Antom 返回的 Checkout Page 页面地址(normalUrl )后,将该地址传递给前端,由商户前端跳转至 Antom Checkout Page 页面。
以下为商户前端加载 normalUrl 的示例代码:
Web
WAP
下图展示了跳转的 Antom Checkout Page 页面效果:

3D 验证页面
首笔交易是买家参与的交易,需要进行身份验证,用于保障后续买家不在场的周期性扣费的安全。因此对于首笔交易的身份验证要求见下表:
支付方式类型 | 首笔交易 3D 验证要求 | 操作 |
卡支付 | 不论是商户采集卡信息还是 Antom 采集卡信息,首笔交易均需要完成 3DS 交易,以完成买家身份验证。 | true 。 |
如果托管 Antom 解密paymentToken,首笔交易则需要完成 3DS 交易,以完成买家身份验证。 | 注意:如果 Antom 解密后为的卡信息为 DPAN,会自动进入验证过程,不会让买家二次核验身份。 | |
如果托管 Antom 解密ApplePayPaymentToken,首笔交易则需要完成 3DS 交易,以完成买家身份验证。 |
常见问题
问:paymentRedirectUrl 在传参上有些什么注意点?
答:默认设置为 HTTPS 地址,同时 URL 中的特殊字符能进行编码处理,否则会支付异常。
问:支付结果页内容如何展示?
答:您需要通过在 createPaymentSession(单笔支付)接口中指定 paymentRedirectUrl 字段来提供一个 HTTPS 地址。该地址用于在商户端显示支付结果。在支付成功和支付失败的情况下,可能都有入口可以从支付方式端回跳到商户页面。因此,请勿将 paymentRedirectUrl 固定写成“订阅创建成功页面”,而是以服务端返回的结果为准,避免引起买家误解。
问:回跳商户结果页是否代表订阅创建成功?
答:不能仅凭回跳商户页面来判断订阅创建是否成功,具体有以下三种情况:
- 买家支付成功后,可能因网络等原因导致未能回跳至商户页。
- 即使买家未完成支付,也可能通过支付方式端的入口回跳至商户页面。
- 即使买家完成支付,也可能因为请款失败而导致订阅关系没有生效。
步骤 3:授权或支付结果通知 服务端
在支付处理流程中,Antom 会根据不同的支付方式类型向您发送相应的结果通知。
- 对于卡支付、Google Pay 和 Apple Pay 支付场景,Antom 发送的是授权结果通知,告知您授权是否成功。只有授权支付成功后才会触发请款,请依据请款结果作为发货依据。
- 对于 APM 支付场景,当支付成功或失败时 Antom 会发送的是支付结果通知。
卡、Google Pay 和 Apple Pay
APM 支付
(可选)步骤 4:请款并获取请款通知 服务端
注意:
- 卡支付场景下必须请款,只有授权支付成功才会触发请款。
- 部分 APM 支付方式需要请款,如 Apple Pay、Google Pay 和 Pay by Bank,同时也只有授权支付成功才会触发请款。
授权支付成功后,Antom 默认自动为您请款,也支持您手动发起请款。同时,Antom 会使用 notifyCapture(单笔支付)将请款结果通知发送给您,您也可以通过主动查询来获取请款结果。您需要根据请款结果来决定是否发货,具体操作请参阅请款。
步骤 5:获取订阅通知 服务端
订阅关系生效后,Antom 会为您发送以下通知:
首期订阅通知
Antom 将通过 HTTPS 向您在接口或 Antom Dashboard 中配置的 Webhook 推送以下事件通知:
通知类型 | 接口 | 请求报文信息 |
订阅状态通知 |
| |
当期扣款结果通知 | 请求报文 notifyType 的值为 PAYMENT_RESULT ,result.resultStatus 判断本期扣款成功 (S ) 还是失败 (F )。 |
订阅状态通知
当期扣款结果通知
常见问题
问:Antom 会重新发送异步通知吗?
答:会。对于以下情况,异步通知将在 24 小时内自动重新发送:
- 由于网络原因未收到异步通知。
- 如果收到来自 Antom 的异步通知,但您没有按照返回收到确认信息的格式进行响应。
通知可以重发最多 8 次,或者直到收到正确的响应以终止传递。发送间隔如下:0 分钟,2 分钟,10 分钟,10 分钟,1 小时,2 小时,6 小时和 15 小时。
问:收到支付结果通知是否需要验签?
答:需要。通过验签 Antom 会发送保障回调请求给您,验签时请注意拼装待验签报文时需按标准处理:
<http-method> <http-uri> <client-id>.<request-time>.<request-body>
,特别是针对 <request-body>
需直接取值而非解析 JSON 后拼装。
问:若首次支付失败,订阅关系会生效吗?
答:当订阅开通的首次扣款失败时,订阅关系将不会生效,Antom 系统会通过 Webhook 推送 subscriptionStatus 为
TERMINATED
的状态通知给您,表明订阅开通失败。
问:订阅超时时间是多久?
答:
- 针对 APM 类支付方式,默认为 80 分钟超时时间;
- 针对卡支付/Apple Pay/Google Pay,默认为 7 天超时时间。
您还可以通过 subscriptionExpiryTime 字段来指定过期时间。
订阅续期通知
当订阅创建成功并建立有效关系后,Antom 系统将会根据您配置的订阅规则,自动发起续订扣款,并通过 Webhook 推送相应的支付结果通知,实现周期性扣费。触发续订扣款的时间和规则如下:
- 触发时间:续订扣款将在下一个订阅周期起始日的前 24 小时自动触发。您可以依据上一周期支付结果通知中的 periodEndTime 字段,向前推 24 小时以判断下一周期扣款的发起时间。
- 周期规则:续费周期及扣款频率将按照订阅时设定的 periodRule 执行,例如按日、按月、按季度或按年扣款。
首期扣款时间 首期 paymentTime = periodStartTime | 订阅周期 | 下期扣款时间 paymentTime | 下期生效时间 periodStartTime |
2024-09-25T20:10:17+08:00 | 设置订阅周期为 3 天,需要传入以下参数:
| 2024-09-27T20:20:04+08:00 | 2024-09-28T20:10:17+08:00 |
2024-09-25T20:10:17+08:00 | 设置订阅周期为 1 周,需要传入以下参数:
| 2024-10-01T20:10:17+08:00 | 2024-10-02T20:10:17+08:00 |
2024-09-25T20:10:17+08:00 | 设置订阅周期为 1 个月,需要传入以下参数:
| 2024-10-24T20:10:17+08:00 | 2024-10-25T20:10:17+08:00 |
2024-09-25T20:10:17+08:00 | 设置订阅周期为 1 年,需要传入以下参数:
| 2025-09-24T20:10:17+08:00 | 2025-09-25T20:10:17+08:00 |
卡支付、Google Pay 和 Apple Pay
APM 支付
常见问题
问:若扣款失败会导致订阅关系失效吗?
答:创建订阅的首期扣款如果失败,订阅关系将不会生效;若订阅关系已生效但后续的周期扣款失败(如余额不足),订阅状态仍保持有效;若未主动取消订阅,Antom 将会在下一期继续周期扣款。
问:扣款失败会发送当期扣款通知吗,会重试吗?
答:扣款失败会发送扣款失败通知。卡支付、Google Pay 和 Apple Pay 的订阅支付场景下,Antom 不会发起重试;APM 的订阅支付场景下,Antom 会发起多次重试。商户侧如需自行发起重试,可联系技术支持确定方案。
问:假如首期扣款是 2 月 28 日、3 月 31 日或 4 月 30 日这些月末时间点,那下一期的扣费时间怎么定义?
答:订阅的周期逻辑为按选定的日期来发起下一次扣款,如果下一个周期没有这个日期,则往前推到最后一天,例如:
- 首期 1.28,二期 2.28,三期 3.28,四期 4.28。
- 首期 1.31,二期 2.28,三期 3.31,四期 4.30。
- 首期 1.30,二期 2.28,三期 3.30,四期 4.30。
问:后续的周期扣款如何跟首期合约关联?
答:针对周期扣款通知,可以根据通知请求中的 subscriptionRequestId 或 subscriptionId 与首期合约关联。针对卡支付、Google Pay 和 Apple Pay 的周期扣款,Antom 还会额外发送授权结果通知和请款结果通知,这两个通知可以根据 paymentId 关联到周期扣款通知中的 paymentId 并最终关联上首期合约的 subscriptionId。
订阅后操作
完成订阅支付后,您可以对交易进行以下操作:
查询订阅相关信息 服务端
订阅确认后,您可以查询以下订阅信息:
- 查询订阅列表:您可以通过 inquireSubscriptionList 接口查询符合特定筛选条件的订阅列表。
- 查询订阅详情:您可以使用 subscriptionId 调用 inquireSubscription 接口来获取订阅详情。
- 查询订阅交易信息:您可以使用 subscriptionId 调用 inquireSubscriptionPayment 接口来获取订阅交易的列表信息。
查询交易 服务端
除了可以通过异步通知的功能获取买家的支付结果,同时也支持您通过主动查询服务来获取对应的结果。您可以调用 inquiryPayment 接口,可使用支付会话中的 paymentRequestId 查询支付状态。
以下代码展示了一个响应报文的示例:
下表展示了响应报文中 paymentStatus 字段可能的值:
paymentStatus | 信息 |
SUCCESS | 表示授权支付成功。 |
FAIL | 表示授权支付失败。 |
注意:在查询交易时,如果买家没有提交订单,就会一致报错
ORDER_NOT_EXIST
,提交订单以后才不会报错。订阅试用 服务端
终止订阅 服务端
取消交易 服务端
对于支付成功后的订单,如买家在当天内申请取消订单或退款,您可以通过 Antom 提供的取消交易能力将订单状态取消或解冻。此外,对于尚未完成支付的订单,您也可以直接进行取消,具体的集成方案见取消交易文档。
退款 服务端
对于已支付成功的订单,如您需向买家发起退款,Antom 提供以下两种方式。
- 由您的运营人员直接在 Antom Dashboard 平台上进行人工退款。
- 通过接入 refund 接口发起退款。
Antom 的退款能力如下:
- 支持全额退款。
- 支持部分多次退款,多次退款的总金额需小于等于请款金额。
争议 服务端
对账 服务端
更多内容
指定支付方式
您可以在 Antom Dashboard 的 支付 > 收银台设置 >支付方式 中配置指定支付方式。您也可以通过在 createPaymentSession(单笔支付)接口传入参数,指定在 Checkout Page 上展示的支付方式、支付方式列表的排序,以及极速支付方式的展示,具体步骤请参阅指定支付方式。
注意:如果您通过接口传入参数来指定支付方式,则优先取接口传值。
此功能为您带来以下优势:
- 根据您的业务地区过滤当地的支付方式
- 按照您的偏好对支付方式进行排序
- 可以将主流的支付方式如 Alipay、Apple Pay、Google Pay 以极速支付的形式展示













