
Buy/Sell User Flow 详细说明
1. 用户发起交易
- 用户在系统中选择“法币交易”(Fiat-trading)功能,开始买卖流程。
一、买入流程(Buy Flow)
Step 1:获取报价
- 系统调用报价接口(Get a quote),为用户提供当前的买入价格。
Step 2:用户是否接受报价
- 若用户不接受报价,交易流程终止(Trade canceled)。
- 若用户接受报价,进入下一步。
Step 3:检查用户是否选择买入(Buy crypto?)
- 若选择“Buy”,继续;若选择“Sell”,进入卖出流程。
Step 4:检查法币余额
- 系统调用法币查询接口检查用户账户中的法币余额。
➤ 如果用户法币余额 不足:
- 系统跳转到“法币充值页面”(Show the fiat deposit page)。
- 用户可通过 银行转账 或 信用卡/借记卡 进行充值(Deposit funds)。
- 充值完成后返回流程继续。
➤ 如果用户法币余额 充足:
- 进入下一步。
Step 5:通知交易所开始交易
-
系统通过 Webhook 调用交易所交易通知接口:
POST /trade-notify通知交易所已发起买入交易。
Step 6:执行交易
- 交易所执行买入操作(Execute the trade)。
Step 7:回传交易结果
-
系统调用交易所交易执行接口:
POST /trade-execute将交易结果通知交易所。
➤ 如果交易失败:
- 流程结束(Trade failed)。
➤ 如果交易成功:
- 流程结束为“Trade completed”(交易完成)。
二、卖出流程(Sell Flow)
Step 1:获取报价
- 与买入流程相同,用户先通过“Get a quote”获取卖出价格。
Step 2:用户是否接受报价
- 若不接受报价,则“Trade canceled”。
- 若接受报价,继续。
Step 3:检查加密资产余额
-
系统调用余额查询接口:
Call /balances查询用户在交易所的加密货币余额。
Step 4:是否有足够的加密货币可卖
- 若余额不足 → 交易失败(Trade failed)。
- 若余额充足 → 继续。
Step 5:通知交易所交易开始
-
系统调用交易所通知接口:
POST /trade-notify通知交易所已发起卖出交易。
Step 6:交易所冻结用户加密资产
- 交易所将对应数量的加密货币冻结,确保交易可执行。
Step 7:执行交易
- 交易所执行卖出操作(Execute the trade)。
Step 8:回传交易结果
-
系统调用:
POST /trade-execute通知交易所交易执行结果。
➤ 如果交易失败:
- 交易所调用“Unfreeze user assets”解冻用户资产。
➤ 如果交易成功:
- 将用户加密货币从其钱包转入平台托管钱包(Move user assets from his wallet to Legend’s wallet at the exchange)。
- 流程结束为“Trade completed”。
三、交易状态说明
| 状态 | 说明 |
|---|---|
| Trade canceled | 用户未接受报价或中途取消交易 |
| Trade failed | 交易执行失败(如余额不足或系统错误) |
| Trade completed | 交易成功完成,资产已转移或更新余额 |
