pago/README.md

1.7 KiB

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.