41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
# 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:
|
|
|
|
```
|
|
monero network
|
|
▲
|
|
│
|
|
┌─────▼───────┐
|
|
│ monerod │
|
|
│(remote node)│
|
|
└───────▲─────┘
|
|
daemonRPC│
|
|
┌─────────▼──────┐
|
|
│view-only wallet│
|
|
└──────▲────▲────┘
|
|
walletRPC│ │walletRPC
|
|
+--------│----│--------+
|
|
|┌───────▼─┐ ┌▼───────┐|
|
|
|│Processor│ │Merchant│|
|
|
|│ API │ │frontend│|
|
|
|└──▲──────┘ └────────┘|
|
|
| │HTTPS/WSS |
|
|
| ┌─▼──────────────┐ |
|
|
| │Payment frontend│ |
|
|
| └────────────────┘ |
|
|
+-----------------pago-+
|
|
```
|
|
|
|
- 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.
|