Table of Contents

Purchase Entities

Not intended to be interpreted as Database Model

Orders

Depicts a shopping Cart and contains:

Events

Record events associated to Orders and Payments

Orders

Payments

Payments

Depicts payment transactions executed against specific Order. This is akin to Registration site transaction.

Cart Purchase Logic

Free

User FIODashboard GeeTest FIOChain
@Starter(User)
"{Confirmation}" = User->FIODashboard.FreeFIOAddress() {
  "Solved" = User->GeeTest.Captcha()
  FIODashboard.CreateOrder(amount_usdc=0,amount_fio=0) 
  "Registered" = FIODashboard->FIOChain.Register()
  FIODashboard.UpdateOrder()
}

Paid with FIO

User FIODashboard FIOChain
@Starter(User)
"{Confirmation}" = User->FIODashboard.PayWithFIO() {
  FIODashboard.CreateOrder(amount_usdc=123,amount_fio=456)
  "Registered" = FIODashboard->FIOChain.Register()
  FIODashboard.UpdateOrder()
}

Paid with CoinPayments

Success

User FIODashboard CoinPayments FIOChain
@Starter(User)
"{Confirmation}" = User->FIODashboard.PayWithCoinPayments() {
  FIODashboard.CreateOrder(amount_usdc=123,amount_fio=456)
  User->CoinPayments: Redirect.Pay()
  CoinPayments->FIODashboard: WebHookNotification
  FIODashboard.CreatePayment(ReceivedFromCoinPayments)
  FIODashboard.CreatePayment(SpentOnOrder)
  "Registered" = FIODashboard->FIOChain.Register()
  FIODashboard.UpdateOrder()
}

With Errors

User FIODashboard CoinPayments FIOChain
@Starter(User)
"{Confirmation}" = User->FIODashboard.PayWithCoinPayments() {
  FIODashboard.CreateOrder(amount_usdc=123,amount_fio=456)
  User->CoinPayments: Redirect.Pay()
  CoinPayments->FIODashboard: WebHookNotification
  FIODashboard.CreatePayment(ReceivedFromCoinPayments)
  FIODashboard.CreatePayment(SpentOnOrder)
  "Errors" = FIODashboard->FIOChain.Register()
  FIODashboard.CreatePayment(ReceivedBackDueToErrors)
  FIODashboard.CreatePayment(SpentOnFIOTokens)
  "{Confirmation}" = FIODashboard->FIOChain.SendTokensToUser()
  FIODashboard.UpdateOrder()
}

Paid with Stripe

See https://stripe.com/docs/payments/accept-a-payment?ui=elements

Registering FCHs on private domain when not paid with FIO

On-chain execution of cart items

Item

On-chain call

Register FIO Address

register_fio_address

Register FIO Domain

Renew FIO Domain

Add bundles to FIO Address