Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
upay:start [2010/06/20 15:36] – Links to intern:upay_evolution changed to upay:upay_evolution bsx | upay:start [2021/04/18 12:35] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== uPay: Bargeldloses Bezahlen im Club ====== | ====== uPay: Bargeldloses Bezahlen im Club ====== | ||
- | ===== Angepeiltes System | + | ===== Uebersicht |
- | Das System basiert auf einzelnen Tokens, die einen bestimmten Wert haben. | + | Das System basiert auf einzelnen Tokens, die einen bestimmten Wert haben. |
+ | |||
+ | Ein Token besteht aus einer Zufallszahl, | ||
+ | |||
+ | Werden die Tokens an den dafuer vorgesehenen Stellen (Matemat, RepRap, ...) verwendet werden sie in der (zentralen) Datenbank als benutzt markiert und ein neues Token generiert. Dieses Token wird vom Empfaenger | ||
+ | |||
+ | ===== Entwicklung ===== | ||
+ | |||
+ | * Mailingliste: | ||
+ | |||
+ | * upay Library: https:// | ||
+ | * Fnordload: https:// | ||
+ | * Matemat: https:// | ||
+ | * Laser: https:// | ||
- | Werden die Tokens an den dafuer vorgesehenen Stellen (Matemat, RepRap, ...) verwendet werden sie in der (zentralen) Datenbank als benutzt markiert und nichtmehr akzeptiert. Ferner wird geloggt was wann verkauft wurde um bedarfsgerecht einkaufen zu koennen. | ||
- | |||
===== Aktueller Stand ===== | ===== Aktueller Stand ===== | ||
* System befindet sich im **Testbetrieb** | * System befindet sich im **Testbetrieb** | ||
- | * Tokens koennen | + | * Tokens koennen |
* Bezahlung nur mit USB-Stick | * Bezahlung nur mit USB-Stick | ||
* Getraenketaste so lange druecken bis die Motoren im Matematen anlaufen! | * Getraenketaste so lange druecken bis die Motoren im Matematen anlaufen! | ||
* wird mittelfristig durch Zusatzhardware fuer Matematen behoben | * wird mittelfristig durch Zusatzhardware fuer Matematen behoben | ||
+ | * API zu erreichen unter https:// | ||
+ | * Taeglicher Datenbank-Dump unter https:// | ||
+ | * Matemat-Tokens unter https:// | ||
- | ===== Aktueller | + | ===== Aktueller |
- | + | In einer Datenbank werden die Hashes der ausgegeben Tokens (SHA-512) sowie das Ausstelldatum | |
- | Momentan befindet sich auf dem Embeddedrechner im Matemat ein Prototyp des Systems: https:// | + | |
- | + | ||
- | In einer Datenbank werden die Hashes der ausgegeben Tokens (Form: 256 Zeichen Zufallsdaten + Timesteamp der Ausgabe) gespeichert und bei Verwendung als benutzt markiert. Die Datenbank enthaelt so keine Informationen, | + | |
- | + | ||
- | Die Tokens werden per USB-Stick vom Matesuechtigen an das System herangetragen. Das System sucht dann per udev-rule nach einer " | + | |
- | + | ||
- | Ausserdem befindet sich auf <fill me in> ein HTTP-Server, | + | |
- | + | ||
- | Das Datenbanklayout ist zur Zeit noch stark an den Matematen (pricelines) gekoppelt. Logging findet statt (Invalidation der Tokens sowie separat die Priceline-Ausgabe). | + | |
- | + | ||
- | ==== API ==== | + | |
- | + | ||
- | Grundsaetzliches: | + | |
- | * Token-Listen sind **immer** \n-delimited! | + | |
- | * Bei allen intern Token-Checks (z.B. auch bei /// | + | |
- | * Nur 1 Connection pro IP! | + | |
- | + | ||
- | === Bezahlen === | + | |
- | + | ||
- | Die Bezahl-API funktioniert grundsaetzlich in 3 Schritten: **Sessionerstellung**, | + | |
- | + | ||
- | ^ Schritt | + | |
- | | (1) Sessionerstellung | /pay/create | | sessionid | + | |
- | | (2) Tokenuebertragung | / | + | |
- | | (3) Sessionabschluss | + | |
- | | Abbruch | + | |
- | + | ||
- | === Token-Management === | + | |
- | + | ||
- | ^ Aktion | + | |
- | | Tokens auf Gueltigkeit ueberpruefen | / | + | |
- | | Neue Tokens generieren | + | |
- | | Tokens auf Server ablegen (neu generierte mit PIN) | / | + | |
- | | Neue Tokens holen (mit PIN) | / | + | |
- | + | ||
- | === Fehlercodes === | + | |
- | + | ||
- | Falls ein HTTP Code != 200 (OK) zurueckgeliefert wird, ist ein Fehler aufgetreten. Die Fehler koennen wie folgt interpretiert werden: | + | |
- | + | ||
- | ^ HTTP Error Code ^ Fehler | + | |
- | | 400 Bad Request | + | |
- | | 401 Unauthorized | + | |
- | | 402 Payment Required | + | |
- | | 404 Not Found | Bei /// | + | |
- | | 503 Service Unavailable | Bei /// | + | |
- | + | ||
- | ===== Planung ===== | + | |
- | + | ||
- | {{ https:// | + | |
- | + | ||
- | Es sollen mehrere Postgresql-Datenbanken aufgesetzt werden, die sich untereinander syncen. Ein Datenbank soll auf Zonk liegen. Diese dient der Synchronisation und zur Erstellung von Backups. | + | |
- | + | ||
- | In den Clubraeumen befindet sich auf auf zwei Rechnen ebenfalls jeweils eine Datenbank mit Frontend auf die ein dort lokal laufender Checkoutserver zugreift. | + | |
- | Dieser Server bietet | + | Die Tokens werden per USB-Stick vom Matesuechtigen an das System herangetragen. Das System sucht dann nach einer " |
- | Die Kommunikation zwischen | + | Die API laeuft auf dem selben |
- | ===== Zukunft/ | ||
- | * Tokens mit festen Wert von 50 Cent? | + | ===== Technische Infos ===== |
- | * Dies mag fuer Getraenke funktionieren, | + | * [[api|API]] |
- | * Tokens sollte optional mit Verfallsdatum | + | * [[zukunft|Planung/Zukunft/ |
- | * < | + | |
- | * Schatzmeister benoetigt eine Verwaltung fuer das System | + | |
- | * Datenbank soll ueber mehrere Rechner innerhalb und auserhalb der Clubraeume verteilt sein | + | |
- | * API ueber Tor Hidden Service zugaenglich | + | |
- | * Anonymitaet, | + | |
- | * sonst: Zuordnung ueber MAC-Adresse bzw. Korrelation mit DHCP-Hostname moeglich | + | |
- | * Mehr Auflademöglichkeiten wagen: | + | |
- | * Geldscheinleser? | + | |
- | * PayPal? (wurde von einigen Members gewünscht, bsx ist noch skeptisch ob der potentiellen Nebenwirkungen) | + | |
- | * Überweisung? | + | |
- | * Mobile-App | + | |
- | * Token-Transfer-Möglichkeit (Member2Member-Payment) | + | |
- | ===== interne Weiterentwicklung ===== | ||
- | [[upay_evolution]] |