PHP Transaktionen über Klamm-Lose durchführen

Marcel158

Member
ID: 462282
L
7 Januar 2015
10
0
Hallo,

ein Kunde möchte, dass der Nutzer auf der Webseite über Klamm-Lose (von denen ich zuvor noch nichts gehört habe), etwas kaufen kann und jetzt komme ich mit der API gar nicht klar.
Das hier wäre wohl was ich brauche.
Zunächst mal Fragen zu den Parametern.
inout: Wäre "1", dass der Kunde 1 Klamm bezahlt?
Alle weiteren, als optional gekennzeichneten, Parameter verstehe ich eigentlich auch nicht.
Nun wird das GET-Formular auf https://www.klamm.de/engine/klamm/tlist.php validiert und gewisse Werte zurückgegeben. Ich weiß jetzt nicht, wie ich damit arbeiten sollen, dass das ganze auf einer externen Seite bearbeitet wird. Verlinke ich mit meinen Daten auf diese Seite, kümmert sich klamm.de also um die Transaktion, ja? Wie kann ich dem User nun also sagen, dass seine Transaktion erfolgreich war? Wie soll ich mir Zugriff auf die zurückgegebenen Werte verschaffen?

Dankeschön.
 
Ich bin eingeloggt. Die Return-Codes sind erklärt. Aber die Informationen und Erklärungen dort finde ich schon etwas mangelhaft. Aufgrund der geringen Bekanntheit findet sich außerhalb dieser Seite leider auch nicht viel Information :(
 
Also wenn du professionell programmierst, solltest du damit allemal klar kommen ;)
Sind ja sogar direkte Beispiele aufgeführt...

Mein Edit im oberen Post gesehen? Evtl. hilft dir das weiter.

Gruß Aru
 
Ah.. das Github Repository hilft mir schon weiter, danke.

Auf der ExportForce API Seite finde ich nirgendwo direkte Code Beispiele, nur das:

Das Herzstück von ExportForce ist natürlich die eigentliche API. Im Folgenden erfahren Sie, nach welchem Muster Sie die Anfrageurl zusammenbauen müssen, um die gewünschten Ergebnisse zu erhalten. Bitte beachten Sie, dass Sie mindestens eine gültige Transaktionskennung festlegen müssen, um die Lose-Funktionen nutzen zu können.
Wichtige Änderungen
25.04.14 - validate.php liefert zusätzlich [verified]
24.05.13 - Verbesserte Sicherheit: API-Key und IP- Whitelist.
klamm
User Check
Gesperrte User
Abmeldequeue
Accountdaten
Transaktionen
Neueste ID
EFklamm
Losestand abfragen
Lose einziehen
Lose verschicken
EFEF
EF Transaktionen
EF Status
Lose >> EF Tresor
EF Confirm
EF Daten

klamm Transaktionen
https://www.klamm.de/engine/klamm/tlist.php
Parameter
ef_id // Ihre interne EF-ID (19163)
ef_pw // Ihr EF-Passwort (oder API-Key)
k_id // ID des klamm-Users
s_pw // Statistik-Passwort des klamm-Users
inout // 1 (Einnahmen) oder 2 (Ausgaben) (optional)
limit // x,y (x Einträge überspringen, dann y anzeigen) (optional)
ab_tid // Transaktionen mit T_ID > ab_tid (optional)
ab_time // Transaktionen ab unix_timestamp>=ab_time (optional)
type // Transaktionen via (0) User, (1) EF-Script oder (2) EF-Account (optional)
target // Transaktionen von/zu (0) System, (1) Usern oder (2) EF (optional)
Returncodes
1001 // Alles OK
1002 // EF-Account existiert nicht
1003 // EF-Passwort falsch
1004 // Nicht genug EF-Anfragen
1006 // klamm-User existiert nicht
1007 // klamm-User ist gesperrt
1013 // Inout-Parameter nicht zulässig (optional)
1014 // Limit-Parameter nicht zulässig (optional)
1015 // ab_tid-Parameter nicht zulässig (optional)
1016 // ab_time-Parameter nicht zulässig (optional)
1017 // type-Parameter nicht zulässig (optional)
1018 // Statistik-Passwort falsch
1023 // target-Parameter nicht zulässig (optional)
1097 // EF temporär überlastet
1098 // EF-Account ist gesperrt
1099 // Unbekannter Fehler
Rückgabeformat
Returncode|#Ergebnisse|#freeEFAnfragen|#bezEFAnfragen|#UserLose
T_ID|target|type|unix_timestamp|us erID|+/-#Lose|Kennung|Betreff
T_ID|target|type|unix_timestamp|userID|+/- #Lose|Kennung|Betreff
...
// userID -1 = "klamm.de"
// bei Error sind versch. Werte ggf. -1
// type: Transfer via (0) User, (1) EF-Script oder (2) EF-Account
// target: Empfänger/Sender ist (0) System, (1) klamm-User oder (2) EF-Account
Beispielaufruf
https://www.klamm.de/engine/klamm/tlist.php?ef_id=12345&ef_pw=test
&limit=0,30&inout=1&s_pw=statpw&k_id=20876

Bin ich da etwa falsch?
 
Ok, naja ich werde mich am Code Example orientieren. Danke für die schnelle Hilfe.

Ich glaube meine richtigen EF und Klamm Daten angegeben zu haben (die EF Kennung ist doch aber ein String und keine Zahl, wie es im Beispiel der Fall ist, oder?).

Jedenfalls wollte ich fragen, woran es liegt:
User konnte nicht validiert werden, EF-Fehler: Nicht genug freie EF Anfragen
Lose konnten nicht eingezogen werden, EF-Fehler: Nicht genug freie EF Anfragen
Lose konnten nicht versandt werden, EF-Fehler: Nicht genug freie EF Anfragen
User hat -1 Lose.
EF hat 0 Lose.
Fehler beim Abfragen des EF-Losestandes, EF-Fehler: Nicht genug freie EF Anfragen
 
Zuletzt bearbeitet von einem Moderator:
Jedenfalls wollte ich fragen, woran es liegt:

Du brauchst zu EF-Anfragen (kostenpflichtig)

klamm.de schrieb:
Für die aktive Nutzung der API werden € 0,0001 pro Anfrage* berechnet. Die Anfragen werden vom aufladbaren EF-Konto abgebucht. Die Erstaufladung muss mindestens € 5,0000 betragen und wird komplett aufs Anfragenkonto gutgeschrieben.
 
Achso, ok.

https://github.com/tleilax/exportforce/blob/master/example.php
Ich komm nicht mehr mit bei den vielen IDs und Passwörtern, welche ich mir schon hab einstellen müssen.

PHP:
// Exportforce
    $id      = 12345;
    $pwd     = 'gott';
    $kennung = 4321;

ID müsste die fünfstellige "interne EF-ID" sein
Pwd müsste demnach das Passwort sein, mit dem ich mich auf https://www.klamm.de/partner/ef_welcome.php einlogge.
Die Kennung .. ja davon habe ich, wenn Groß- und Kleinschreibung beachtet wird glaube ich auch mehrere. Aber hier ist doch die "EF-Kennung" gemeint, oder? Bei mir wäre das "Marcel158".. und keine Zahl.

Machen wir weiter:
PHP:
    // User
    $klammid = 27936;
    $losepw  = 'losepass';

Die KlammID, ist doch die UserID, welche man auf der Dickpage sieht? Oder nicht? Bei mir ist sie allerdings sechsstellig. Dass ich das Lose Passwort explizit eingestellt habe, daran erinnere ich mich.

kann mir keiner helfen?
 
Zuletzt bearbeitet von einem Moderator:
Machen wir weiter:
PHP:
    // User
    $klammid = 27936;
    $losepw  = 'losepass';

Die KlammID, ist doch die UserID, welche man auf der Dickpage sieht? Oder nicht? Bei mir ist sie allerdings sechsstellig. Dass ich das Lose Passwort explizit eingestellt habe, daran erinnere ich mich.

Deine UserID ist 462282 - Du siehst sie hier im Forum links neben deinem Beitrag.
Die Schnittstellenbeschreibung ist schon recht alt. Damals waren die Nummern noch kleiner. Meine ist ja auch 5-stellig.
Das Losepasswort lässt man sich üblicherweise vor jeder Transaktion neu generieren. Siehe den Screenshot im Anhang. Ich habe da den Tooltip markiert. Nach dem Holen eines neues Losepasswortes ist es 10 Minuten gültig. Oder halt bis du dir ein neues generieren läßt.

Ich glaube die meisten deiner Probleme hängen damit zusammen, dass du die Seite nicht kennst. Die Schnittstellenbeschreibung geht davon aus, dass der Leser die Begriffe aus der Klamm-Welt kennt.
 

Anhänge

  • Klamm_LosePW.JPG
    Klamm_LosePW.JPG
    11,1 KB · Aufrufe: 8
Wow, da wäre ich ja nie drauf gekommen, dass sich das lose pw dort versteckt.

User wurde erfolgreich validiert!
Lose konnten nicht eingezogen werden, EF-Fehler: EF Kennung existiert nicht


Das lief ja schon mal gut.

(Bild siehe Anhang) ~kbot

Sind das nicht unmissverständlicherweise die Daten, die im ExportForce Teil verlangt werden oder nicht?
 

Anhänge

  • jk4wdp3iadis.png
    jk4wdp3iadis.png
    618,2 KB · Aufrufe: 12
Zuletzt bearbeitet von einem Moderator:
Das scheint unglücklich benannt zu sein. Klick mal rechts im Menü auf EF-Kennungen. Da kannst Du mehrere Kennungen eingeben, welche Dir dann eine dazugehörige Zahl liefern. Diese musst Du in der API verwenden.
 
Unglück benannt... pff.. ja, ich weiß auch noch als ich das "Lose Pw" eingestellt habe.

Danke auf jeden Fall, ich teste es dann..
 
Zuletzt bearbeitet von einem Moderator:
Lose-Pw und Lose-Pw allerdings auch. Genauso wie EF-Kennwort und EF-Kennwort. Tut mir Leid wenn es nur an mir liegt, aber ich finde Klamm so unübersichtlich und die Benennungen sind so schlecht getroffen. Das ist mir bei den Passwörtern, den IDs, der API sowie seinen Erklärungen aufgefallen.
 

Anhänge

  • Bildschirmfoto 2015-01-13 um 18.26.26.png
    Bildschirmfoto 2015-01-13 um 18.26.26.png
    305,6 KB · Aufrufe: 16
Die Bezeichnungen im EF sind wirklich haarsträubend verwirrend teilweise, aber im Fall der Lose-Passwörter ist es eigentlich ganz einfach: du kannst ein Lose-Passwort festlegen, das dann für immer gilt, oder du lässt dir eines generieren, das nur 10 Minuten lang gilt (zusätzlich zu dem dauerhaft gültigen). Das wird vermutlich bei den Fragezeichen (auf deinem Screenshot sichtbar) auch so erklärt.