如何集成
实际操作中,您通常先在自己的系统中创建业务订单,然后在需要支付时调用 AinePay 的收银台或者 inline 支付方式,将返回的稳定币支付信息展示给您的客户,您的系统接收推送和查询 AinePay 来更新订单支付信息,完成整个交易流程。
1. 获取支持的币种和链
在向客户展示支付方式之前,您应调用 支持的币种 API 来获取 AinePay 当前可用的币种和链。
目前,AinePay 支持以太坊链的 USDT 和 USDC,之后将陆续添加广泛使用的稳定币及其支持的区块链。
| 币种 | 链 | 链名称 | 合约 |
|---|---|---|---|
| USDT | ETH | Ethereum(ERC20) | 0xdAC17F958D2ee523a2206206994597C13D831ec7 |
| USDC | ETH | Ethereum(ERC20) | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
2. 选择支付方式后创建支付订单
选择支持的支付方式后,您应在自己的后端组装订单并通过相应的 API 将支付请求发送到 AinePay 支付系统。请求中应包含您确定该订单的唯一 ID,AinePay 使用该 ID 来防止同一订单被重复支付。
AinePay 目前支持两种支付集成模式:
- 收银台模式:调用 创建收银台订单 获取 AinePay 托管收银台的支付
url并跳转到该页面完成支付,您不用自己来定义支付流程和客户交互 UI,AinePay 已帮您完成了支付页面的设计。 - AinePay 内嵌模式:调用 创建内嵌订单来接收支付地址数据,并在您自己的产品界面中渲染支付体验。当您需要自定义支付流程,做完善的数据 校验时可以使用此方式。
两种模式都在 AinePay 中创建订单,主要区别在于客户是被重定向到 AinePay 托管页面,还是您在自己的界面中显示支付详情。
3. 通过回调接收支付状态变更,并通过查询 API 确认最终状态
当订单状态变为 PAID、EXPIRED、REFUND、CANCEL 时,AinePay 向您设置的通知 URL 发送异步回调来报告订单状态变更。有关回调数据和签名验证详情,请参阅 支付通知。
当区块链确认数达到所需阈值时,订单状态变为 PAID,表示支付完成。回调应被视为状态转换的快速通知渠道,您应始终使用 查询订单 API 确认订单状态。
| 状态 | 含义 |
|---|---|
INIT | 订单已创建,等待支付。 |
PENDING | 区块链已存在转账,但交易未最终确认,支付进行中。 |
PAID | 支付成功。 |
EXPIRED | 订单过期,支付失败且不能重新支付。 |
CANCEL | 订单被主动撤销(仅 INIT 订单可撤销,区别于自然过期的 EXPIRED),不影响账户和资产。 |
REFUND | 支付成功订单可以退款,只冲正 AinePay 平台内的该用户余额,不在链上发生退款交易。需要在管理后台操作,API 不支持。 |
仅当查询订单状态为 PAID 时才继续之后的履约流程,PAID 状态的订单可在管理后台操作退款。
4. 过期订单处理
AinePay 维护了完整的用户账户记录,如果订单变为 EXPIRED 或其他异常情况导致该笔订单失败,但用户之后仍然发送了资金,该笔资金会记录在用户的账户余额中。当您为同一用户创建下一个订单时,会首先尝试使用该用户可用账户余额进行结算,如果可用余额足够,订单直接变为 PAID,用户无需再次支付。