pago/README.md

41 lines
1.7 KiB
Markdown
Raw Normal View History

2024-04-18 11:05:35 -06:00
# pago
A lightweight monero payment gateway that can be embedded into any website. "pago" is esperanto for "payment", just as "monero" is esperanto for "money".
## Project overview
There are three components to pago, shown in the big square at the bottom in this diagram:
2024-04-18 11:05:35 -06:00
```
monero network
┌─────▼───────┐
│ monerod │
│(remote node)│
└───────▲─────┘
daemonRPC│
┌─────────▼──────┐
│view-only wallet│
└──────▲────▲────┘
walletRPC│ │walletRPC
+--------│----│--------+
|┌───────▼─┐ ┌▼───────┐|
|│Processor│ │Merchant│|
|│ API │ │frontend│|
|└──▲──────┘ └────────┘|
| │HTTPS/WSS |
| ┌─▼──────────────┐ |
| │Payment frontend│ |
| └────────────────┘ |
+-----------------pago-+
2024-04-18 11:05:35 -06:00
```
- The **Processor API** which creates payments using authenticated RPC calls to a viewonly monero wallet
- The **Payment frontend**, an embeddable html/js/css interface for making payments, which communicates with the processor API with HTTPS and WSS (websockets)
- The **Merchant frontend**, an embeddable html/js/css interface for checking payment status, which makes authenticated RPC calls to the wallet directly
The processor api is an express/node.js server and the two frontends have a single lightweight dependency: the knockoutJS microframework.
There is no database. Data are stored in the wallet file, which should be backed up like any data.