User Tools

Site Tools


de:developer:ideas:extensions:ext-currency

Diese Dokumentationsseite ist Mitglied des Entwicklerteils und Ideen zu den Erweiterungen dieses Wikis.

Erweiterung ext-currency (Entwickler-Version, nicht zum Einsatz geeignet)

Daten zur Erweiterung:

  • Kurzbeschreibung: Anbindung an APIs diverser virtueller Währungen
  • Version: v0.0.0
  • Hat Adminbereich? Ja
  • Hat Gastbereich? Nein
  • Hat Mitgliederbereich? Ja
  • Abhängigkeiten: Keine
  • Release-Revision: Noch nicht freigegeben

Aus dem Aufgabentext herauskopiert:

Diese Erweiterung ist ähnlich wie ext-network und bietet eine allgemeine Anbindung an die APIs verschiedener virtueller Währungen, wie z.B. Wernis, FunCoins, eBesucher und vieles mehr. Diese Erweiterung löst zukünftig die bereits bestehende Erweiterungen ext-funcoins, ext-primera und ext-wernis ab. Es kann dann pro Währung eingestellt werden, ob diese auszahlungs-, einzahlungsfähig oder beides ist und dies für Mitglieder und Sponsoren getrennt. Es kann dann auch ein Wechselkurs eingestellt werden oder diesen von einer weiteren API (z.B. virtuelle Börsen von diversen virtuellen Währungen) abgefragt werden (falls diese solches anbietet). Die einzelnen Transaktionen sind für Mitglieder, Sponsoren und Administratoren für eine getrennt einstellbare Speicherdauer und pro Währung unterschiedlich im jeweiligen Loginbereich einsehbar (der Administrator kann sich selber somit z.B. längere Speicherzeiten einstellen als für Mitglieder).

Ideen

Hier nun alle Ideen aufgelistet:

Bereits implementiert (auch lokale Arbeitskopie)

Noch zu implementieren

  • Die meisten Währungsschnittstellen arbeiten nach dem folgenden Prinzip:
    • Loginname + Kennwort des Benutzers + API-Zugangsdaten (meistens noch plus irgent welche Zusätze) an API senden, mit samt weiterer Anfrageparameter
    • API wertet diese aus
    • Im Falle eines Fehlers wird dann in Form von z.B. Zahlencodes eine Statusmeldung zurückgegeben
    • Bei “Erfolgreich” wird die verlangte Aktion ausgeführt (z.B. Guthaben von Account A nach Account B überweisen, Kontostand von Account A abfragen usw.)
    • Dies wird meistens durch entsprechende Rückmeldungen quitiert (z.B. verlangte Daten oder bei bei Überweisungen entsprechende Codes
  • Da dies recht weit so gehandhabt wird, kann hier die API-Abfrage deutlich einfacher gestaltet werden, als bei ext-network dies der Fall ist
  • Bei der Einrichtung einer weiteren Währung muss daher folgendes gewusst werden:
    • Welcher Fehlercode ist für welchen Fehlerfall gedacht? (Dies ist meistens gut dokumentiert)
    • Welches Trennzeichen wird für weitere Rückgabefelder verwendet?
    • Und welches Feld steht für welchen zurückgegebenen Wert?
    • Was wird im Falle eines “Erfolgreich” (also dass keine Fehler waren und alles klappte) von der API ausgegeben?
    • Wie sind die einzelnen Abfrageparameter zu benennen? (Alle haben unterschiedliche Bezeichnungen)
  • Daraus ergibt sich weiteres (auch Lösungsideen):
    • Nicht alle APIs liefern die gleichen Codes aus (z.B. im Falle eines Fehlers, keine Abfragen mehr frei usw.).
    • Diese sollen jedoch auf einen gleichen Nenner gebracht werden, damit nicht für jede Währung ein riesen Programmieraufwand anfällt.
    • Es gilt also, die API-Codes in eigene umzuschreiben, ähnlich wie dies bei ext-network geschieht, um dann z.B. Callback-Funktionen aufzurufen.
    • Die Abfragemethode (GET/POST) soll pro Währung festlegbar sein (auch wie bei ext-network), damit weniger “hart verdrahtes” ist.
    • Auch sind eventuelle Kodierungen (es kann auch BASE64 vorkommen, oder alle Parameter werden mit BASE64 kodiert und in einem einzigen Parameter übergeben, oder vorher mit mcrypt() verschlüsselt oder oder oder …).
    • Hier muss also auch eine flexible, allgemeingültige Lösung her, damit nicht für die einzelene Währung erneut viel Programmieraufwand anfällt
  • Weiteres?

Weitere Ideen für zukünftige Updates

  • Weiteres?

Datenbankstruktur

Sprachauswahl:

Diese Webseite ist auch in anderen Sprachen erhältlich: English

de/developer/ideas/extensions/ext-currency.txt · Last modified: 2012/06/16 23:38 by quix0r