Antom, leading provider of tailored payment solutions

集成快捷支付(API)

Antom EasySafePay 是一款专注于小额高频支付场景的极简支付解决方案。买家可在首次支付时完成钱包绑定或直接支付。后续支付时无需输入密码即可一次点击完成支付。
该方案依托行业领先的智能风控系统、动态轮询技术和支付失败挽回策略,在确保交易安全的同时将支付成功率提升至行业顶尖水平,实现了买家支付体验、商户转化率和平台生态价值的三方共赢。
本文主要介绍如何通过 API 方式集成 EasySafePay 产品。

用户体验

各支付方式在 PC 端和移动端的用户体验存在差异,具体交互方式详见以下表格及用户体验图:
Web
WAP
App

支付流程

首次支付
后续支付

集成准备

在您开始集成前,请阅读集成指南及接口概述文档,了解服务端接口的集成步骤及调用接口的注意事项,并确保已完成以下预配置:
  • 已获得 client ID。
  • 已完成密钥配置。
  • 已完成异步通知接收地址的配置。
  • 集成服务端 SDK 资源包,并完成接口库安装及请求示例初始化。具体操作请参阅服务端 SDK。

集成步骤

开始集成,请按照以下步骤操作:
  1. 创建支付请求
  2. 获取跳转支付推进链接
  3. 获取授权和支付结果

步骤 1:创建支付请求

买家点击支付按钮后,调用 pay(令牌支付) 接口传入订单信息。
首次支付和后续支付调用接口参数说明:
注意:
类型
参数
是否必传
(首次支付)
是否必传
(后续支付 买家操作)
是否必传
(后续支付 商家直接扣款)
参数描述
​
​
基础参数
productCode
是
是
是
EasySafePay 场景设置为
AGREEMENT_PAYMENT
。
paymentRequestId
是
是
是
商户为识别支付请求而分配的专属 ID。
paymentMethod.paymentMethodType
是
是
是
授权签约的支付方式。参见支付方式以查看有效值。
paymentMethod.paymentMethodId
不需要
是
是
传入首次支付后在 notifyAuthorization 接口中获得的 accessToken 的值。
paymentMethodMetadata.smartPaymentEnabled
否
否
该场景不支持
PayPay 钱包需要指定为
true
。
paymentMethod.paymentMethodMetaData.recurringType
不需要
否
是
当支付是商户发起的交易(MIT)时,指定此参数。有效值为:
  • SCHEDULED
    : 表示定期自动扣款支付。
  • UNSCHEDULED
    : 表示不定期自动扣款支付。
如果此参数的值为空或未指定此参数,表示支付不是自动扣款,付款人将参与支付过程。
settlementStrategy
否
否
否
该笔支付的结算策略。若业务签约了多个结算币种,需在接口中指定。若业务只签约了1个结算币种,不需要在接口里指定。
paymentAmount.value
是
是
是
以最小币种单位的正整数形式表示的金额值。
paymentExpiryTime
否
否
否
支付过期的特定日期和时间。默认过期时间为 14 分钟。
paymentRedirectUrl
是
是
否
商户端支付结果页,需根据服务端结果展示,非固定为成功页。
paymentNotifyUrl
否
否
否
支付结果异步通知地址,如通过门户配置,则该参数可不传,必须为 HTTPS 地址。
环境参数
​
order.env.terminalType
是
是
不需要
商户服务适用的终端类型。有效值包括:
  • WEB
    : 客户端终端类型为通过网络浏览器打开的网站。
  • WAP
    : 客户端终端类型为通过移动浏览器打开的 HTML 页面。
  • APP
    : 客户端终端类型为移动应用程序。
order.env.osType
是
是
不需要
操作系统类型。有效值为:
  • IOS
    : 表示操作系统为苹果的 iOS。
  • ANDROID
    : 表示操作系统为谷歌的 Android。
注意:当 terminalType 为
APP
或
WAP
时,此参数必填。
order.env.clientIp
是
是
不需要
客户端设备的 IP 地址。
order.env.deviceId
是
是
不需要
买家下单设备的专属 ID。
授权参数
agreementInfo.authState
是
不需要
不需要
您用于发起授权而分配的专属 ID。该参数仅在首次支付时传递,后续支付无需传递此参数。
订单参数

​
​
​
​
order.orderAmount
是
是
是
订单金额。
order.referenceOrderId​
是
是
是
商户端订单号。
order.orderDescription​
是
是
是
商户端订单描述。
order.buyer.referenceBuyerId
否
否
否
识别买家的买家 ID。
注意:
  • 当您有风控需求时指定此参数。提供此信息有助于提高反洗钱和欺诈检测的准确性,从而提高支付成功率。
  • 该参数与 buyerEmail、buyerPhoneNo 任选其一传入。
order.buyer.buyerEmail
否
否
否
买家的电子邮件地址。
注意:
  • 当您有风控需求时指定此参数。提供此信息有助于提高反洗钱和欺诈检测的准确性,从而提高支付成功率。
  • 该参数与 referenceBuyerId、buyerPhoneNo 任选其一传入。
order.buyer.buyerPhoneNo
否
否
否
买家的手机号码。
注意:
  • 当您有风控需求时指定此参数。提供此信息有助于提高反洗钱和欺诈检测的准确性,从而提高支付成功率。
  • 该参数与 referenceBuyerId、buyerEmail 任选其一传入。
  • 对于 AlipayHK 和 DANA,传入该参数以后会展示签约并支付的页面,具体格式请参考以下表格。
AlipayHK 和 DANA 支持的 buyerPhoneNo 格式如下:
支付方式
order.buyer.buyerPhoneNo 传参格式
  • 中国香港:852-12****78,注意手机号总长度是 8 位(不包含前缀 852-)。
  • 中国大陆:86-137****5678,注意手机号总长度是 11 位(不包含前缀 86-)。
62-8569****7288,手机号 8 开头且手机号长度不超过 12 位(不包括前缀 62-)。
首次支付时传入 order.buyer.buyerPhoneNo 可自动回填买家支付方式账号至支付页面,避免手动输入操作。以下是传入和未传入的体验对比图:
传入支付方式登录账号
未传入支付方式登录账号
以下是首次支付和后续支付两种不同场景集成代码示例:
首次支付
后续支付
常见问题
问:请求参数的值可以使用中文字符吗?
答:为了避免某些支付方式的不兼容,不要在请求的参数中使用中文字符。
​
问:如何设置接收支付通知的链接?
答:在 pay(令牌支付) 接口中指定参数 paymentNotifyUrl,以接收支付结果的异步通知(notifyPayment),或者在 Antom Dashboard 中配置接收链接。如果请求和 Antom Dashboard 中都指定了链接,请求中指定的值优先。
​
问:paymentAmount 和 orderAmount 的区别是什么?
答:paymentAmount 是指支付金额,orderAmount 是指订单金额。实际支付金额以 paymentAmount 为准。

步骤 2:获取跳转支付推进链接

商户服务端拿到 Antom 返回的支付推进链接后,将该地址传递给前端,由商户前端跳转至支付方式页面。
以下为商户前端加载支付推进链接的示例代码:
Web
WAP
iOS
Android
注意:示例代码里的 URL 是指步骤 1 返回 applinkUrl、schemeUrl、normalUrl。关于如何使用这些 URL,请参见跳转链接使用最佳实践文档。
下图为支付方式收银台页面的效果图:
首次支付
后续支付

步骤 3:获取授权和支付结果

回跳支付结果页面

当买家在支付完成后,会回跳到您在 pay(令牌支付) 接口里指定的 paymentRedirectUrl。
注意:并不是所有情况都支持回跳,例如买家操作或者网络原因无法回跳。

获取授权和支付结果

首次支付将返回授权及支付结果,后续支付仅返回支付结果。以下是常见场景:
类型
常见场景
获取到的异步通知情况
处理建议
首次支付
买家成功授权和支付。
授权成功,支付成功。
  • 若收到支付异步通知,则推进到对应状态。
  • 若收到授权成功异步通知,则在商户侧维护好买家和令牌的映射关系。
  • 若在商户订单关闭时未收到任何通知,您可以调用 cancel 接口将支付订单关闭。
    注意:调用 cancel 接口仅关闭支付订单,不影响授权,如果您收到授权成功的通知,建议您进行下一步操作。
买家授权成功,但是因为余额不足等原因支付失败。
授权成功,支付失败。
买家未授权或授权失败,但是支付成功。
授权无异步通知,支付成功。
买家未授权或授权失败,同时因为余额不足等原因支付失败。
授权无异步通知,支付失败。
买家未授权或授权失败,同时也未提交支付。
授权和支付均无异步通知。
后续支付
买家成功支付。
支付成功。
  • 若收到支付异步通知,则推进到对应状态。
  • 若在商户订单关闭时未收到任何通知,您可以调用 cancel 接口将订单关闭。
买家因余额不足等原因支付失败。
支付失败。
获取授权结果
获取支付结果
常见问题
问:支付通知何时发送?
答:这取决于支付是否完成:如果支付成功完成,Antom 通常会在 3 到 5 秒内发送异步通知。
​
问:授权失败是否有异步通知发送?
答:只有授权成功才会有异步通知发送,授权失败不会返回异步通知
​
问:异步通知会被重新发送吗?
答:是的,对于以下情况,异步通知将在 24 小时内自动重新发送:
  • 如果由于网络原因没有收到异步通知;
  • 如果您收到 Antom 的异步通知,但您没有按照返回收到确认信息的示例代码格式进行响应。
通知可以重发最多 8 次,或者直到收到正确的响应以终止传递。发送间隔如下:0 分钟,2 分钟,10 分钟,10 分钟,1 小时,2 小时,6 小时,15 小时。
​
问:授权通知和支付结果通知是分开的,授权通知一定是比支付结果通先收到吗?
答:由于网络稳定性不可控,可能会出现授权通知比支付结果通知晚到的情况。
​
问:是否支持授权查询接口?
答:目前暂未支持该能力。
​
问:在响应异步通知时,我需要添加数字签名吗?
答:如果您收到 Antom 的异步通知,您需要按照返回收到确认信息的示例代码格式返回响应,但不需要对响应进行签名。

支付后集成

取消授权

授权完成后,买家可通过商户侧或支付方式侧取消授权。取消后,原授权令牌立即失效且不可再用于支付。详情请参阅取消授权。

取消交易

订单支持在时效窗口内(截至 T+1 日 00:15 GMT+8)通过 cancel 接口终止交易。详情请参阅取消交易。

退款

Antom 退款规则及操作流程,请参阅退款。

账单

交易完成后,请使用 Antom 财务报告进行对账。结算规则及对账操作请参阅对账。

最佳实践

Antom 为您提供以下最佳实践方案,请参阅最佳实践了解详情:
  • 智能风控服务
  • 处理回跳结果
  • 商户侧主动关单
  • 支付失败重试