跳至主要内容

支付概览

ONE SDK(@one_deploy/sdk v1.1.0)提供了一套完整的支付层,涵盖用户所需的所有价值转移场景:使用法币购买加密货币、将加密货币兑换回法币、在代币之间进行兑换、发送点对点转账、为电子钱包充值以及支付账单。

支付流程

                         +------------------+
| Your User |
+--------+---------+
|
+---------------------+---------------------+
| | | | |
v v v v v
+---------+ +--------+ +------+ +--------+ +---------+
| On-ramp | |Off-ramp| | Swap | |Transfer| | Top-up |
| (Buy) | | (Sell) | | | | (P2P) | | / Bills |
+---------+ +--------+ +------+ +--------+ +---------+
| | | | |
v v v v v
+---------------------------------------------------+
| @one_deploy/sdk Payments API |
| |
| Widgets (Web) | OneEngineClient (All) |
+---------------------------------------------------+
| | | | |
v v v v v
+---------------------------------------------------+
| ONE Engine API (engine.one23.io) |
+---------------------------------------------------+
| | |
v v v
Fiat Payment Blockchain Local Payment
Processors Networks Providers

支付功能

功能描述Widget(Web)API(全平台)
入金使用法币购买加密货币(银行卡、银行转账、移动支付)OneOnrampWidgetgetOnrampQuote, createOnrampSession
出金将加密货币兑换为法币(银行转账、移动支付)OneOfframpWidgetgetOfframpQuote, createOfframpTransaction
兑换代币间兑换,支持同链或跨链OneSwapWidgetgetSwapQuote, executeSwap
点对点转账向任意钱包地址发送代币OneSendWidgetsendTransaction
充值通过本地支付方式为电子钱包充值OnePayWidgetcreateTopup
账单支付支付水电费、话费、订阅服务--(即将推出)payBill, getBillProviders

Widget 与 API

ONE SDK 提供了两种互补的支付接口:

Web Widget(仅限 React DOM)

预构建的 React 组件,处理完整的 UI 流程 -- 输入字段、报价展示、确认和状态追踪。可直接嵌入任何 React DOM 应用。

import { OneOnrampWidget, OneSwapWidget, OnePayWidget } from '@one_deploy/sdk';
仅限 Web 端

所有支付 widget 均渲染至 DOM,需要浏览器环境。它们在 React Native 或 Node.js 中不可用。请在这些平台上直接使用 API 方法。

API 方法(全平台)

每个支付操作都可以通过 OneEngineClient 上的方法来调用。适用于 React Native、Node.js 后端,或需要完全控制 UI 的场景。

import { OneEngineClient } from '@one_deploy/sdk';

const engine = new OneEngineClient({
apiKey: process.env.ONE_API_KEY!,
projectId: process.env.ONE_PROJECT_ID!,
});

// Works on Web, React Native, and Node.js
const quote = await engine.getOnrampQuote('USD', 100, 'USDT');
const swapQuote = await engine.getSwapQuote({ fromToken: 'ETH', toToken: 'USDC', amount: '1.0' });

支持的链

支付方法在以下网络上可用(根据功能有所不同):

入金出金兑换转账
EthereumYesYesYesYes
PolygonYesYesYesYes
ArbitrumYesYesYesYes
OptimismYes--YesYes
BaseYes--YesYes
BSCYesYesYesYes
AvalancheYes--YesYes

通用类型

以下类型在各支付 API 之间共享:

/** Identifies a token across chains */
interface TokenIdentifier {
symbol: string;
chainId: number;
address?: string; // native tokens omit address
}

/** Fiat currency reference */
interface FiatCurrency {
code: string; // ISO 4217 -- "USD", "EUR", "NGN"
name: string;
symbol: string; // "$", "€", "₦"
decimals: number;
}

/** Generic payment status used across all flows */
type PaymentStatus =
| 'pending'
| 'processing'
| 'completed'
| 'failed'
| 'expired'
| 'refunded';

/** Callback shape used by all payment widgets */
interface PaymentCallbacks {
onSuccess?: (result: { transactionId: string; status: PaymentStatus }) => void;
onError?: (error: { code: string; message: string }) => void;
onClose?: () => void;
}

下一步