Die Programmanweisungen werden im JSON-Format durchgeführt. Beispiele in C# finden Sie unten.
=> Erzeugen des API-Autorisierungsschlüssels
Abruf der Abrechnungsdaten (Produktpreis, Uhrenstand) im JSON-Format (SettlementService)
Mit dem oben erzeugten API-Autorisierungsschlüssel haben Sie die Möglichkeit, die Abrechnungsdaten über einen programmierten Abruf abzuholen:
Beispiel-Programmierung (in C#):
const string address = "https://webapps.huth.org/[mandantenname]/api/settlementService/statements";
var request = (HttpWebRequest)WebRequest.Create(address);
request.Accept = "application/json";
request.Headers.Add("WebApiKey", "xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
try
{
var response = request.GetResponse();
var responseStream = response.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
catch (WebException ex)
{
if (ex.Response != null && ex.Status == WebExceptionStatus.ProtocolError)
{
using (var stream = ex.Response.GetResponseStream())
if (stream != null)
{
using (var reader = new StreamReader(stream))
{
var msg = reader.ReadToEnd();
Console.WriteLine(msg);
}
}
}
}
Result (Beispiel, Darstellung mit FIDDLER):
Feldbezeichung |
Erläuterung |
[mandantenname] |
kundenspezifische (Händler-)Bezeichnung (wird bei der Installation von HUTH vergeben) |
dailyStatementNumber |
Nummer der Abrechnung |
effectiveDate |
Umstellungszeitpunkt |
fuelLevelQuantity |
Uhrenstand Menge |
fuelLevelAmount |
Uhrenstand Betrag |
id |
interne ID |
new price |
Neuer Preis |
price |
Alter Preis |
product |
Produktname |
serviceType |
Bedienform |
statementType |
Gibt an, ob es sich um Preise & Uhrenstände handelt, die zum Zeitpunkt der Tagesabrechnung ausgelesen wurden (Typ = C) oder zum Zeitpunkt einer Preisumstellung (Typ = P) |
stationId |
interne StationID |
stationName |
Stationsname |
Die Daten können gefiltert werden, indem HTML Query Parameter an die Adresse gehängt werden. Gefiltert wird nach EffectiveDate oder Id.
Beispiel: A) const string idParameter = "?fromId=1&toId=1000"; => Alle Statements mit Id >= 1 und Id <= 1000
B) const string dateParameter = "?fromDate=2013-08-01T14:00&toDate=2013-08-31"; => Alle Statements mit einem EffektiveDate >= 01.08.2013 14:00 und EffektiveDate<=31.08.2013 |
Mögliche Responses
200 = [OK]
201 = Created (angelegt)
400 = Bad Request (fehlerhafte Anfrage)
401 = Unauthorized (keine Authentifizierung)
403 = Forbidden (fehlende Berechtigung, z.B. Zugriff von einem Rechner, dessen IP-Adresse nicht auf der Whitelist steht)
404 = Not Found
405 = Method Not Allowed
415 = Unsupported Media Type
500 = Internal Server Error (Server-Fehler)
HUTH Elektronik Systeme GmbH - Stand: 04.07.2014 - Autor: Frank-Olaf Nagel