Externe Abfrage von Abrechnungsdaten (Journal Preise & Uhrenstände)

 

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