Buy/Sell User Flow


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:执行交易

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交易成功完成,资产已转移或更新余额