Registriert seit: 22. Jan 2005
344 Beiträge
Delphi 2007 Professional
|
AW: Wie anmelden an entfernten Webservice per Headerinfo?
1. Feb 2017, 01:07
Hallo TiGü,
mein Wissen zu Fiskaltrust ist nicht mehr auf den aktuellsten Stand, obwohl dies bei uns in der Firma bald wieder ansteht(spätestens am 1.April ). Seit letzten Frühjahr hat sich vermutlich einiges geändert. Damals gab es zwar eine Möglichkeit, und vermutlich jetzt immer noch, dass man statt den Weg übers Interface auch direkt über das Json-Format diesen Dienst anzusprechen kann. Ich hatte mal die Kommunikation mit Hilfe von diesem Forum in Beitrag " Kommunikation mit Windows WCF Dienst" gelöst.
Anbei das Ergebnis meiner Versuche von damals:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
HTTP: TIdHTTP;
RequestBody: TStream;
ResponseBody: string;
s: String;
begin
HTTP := TIdHTTP.Create;
try
try
s := ' {"ftCashBoxID":"fiskaltrust-TEST","cbTerminalID":"1","cbReceiptReference":"9c856fa6-5e3c-4e2c-b275-82cf35363fdf","cbReceiptMoment":"\/Date(1452442695134+0100)\/",';
s := s+' "cbChargeItems":[';
s := s+' {"Quantity":1.0,"Description":"Artikel1","Amount":4.8,"VATRate":20.0,"ftChargeItemCase":4707387510509010944,"ftChargeItemCaseData":"","AccountNumber":"","CostCenter":"","ProductGroup":"","ProductNumber":"1","ProductBarcode":"","Unit":""},';
s := s+' {"Quantity":1.0,"Description":"Artikel 2","Amount":3.6,"VATRate":20.0,"ftChargeItemCase":4707387510509010944,"ftChargeItemCaseData":"","AccountNumber":"","CostCenter":"","ProductGroup":"","ProductNumber":"2","ProductBarcode":"","Unit":""}],';
s := s+' "cbPayItems": [{"Quantity":1.0,"Description":"Bar","Amount":8.4,"ftPayItemCase":4707387510509010944,"ftPayItemCaseData":"","AccountNumber":"","CostCenter":"","MoneyGroup":"","MoneyNumber":""}], "ftReceiptCase":4707387510509010944}';
//s:=utf8encode(s);
Memo1.Lines.Add(s);
RequestBody := TStringStream.Create(s);
try
HTTP.Request.Accept := ' application/json';
HTTP.Request.ContentType := ' application/json';
HTTP.Request.ContentEncoding:= ' utf-8';
ResponseBody := HTTP.Post(' http://localhost:1201/fiskaltrust/POS/json/sign', RequestBody);
Memo1.Lines.Add(ResponseBody);
Memo1.Lines.Add(HTTP.ResponseText);
finally
RequestBody.Free;
end;
except
on E: EIdHTTPProtocolException do
begin
Memo1.Lines.Add(E. Message);
Memo1.Lines.Add(E.ErrorMessage);
end;
on E: Exception do
begin
Memo1.Lines.Add(E. Message);
end;
end;
finally
HTTP.Free;
end;
end;
Ich vermute aber stark, dass sich die Json Schnittstelle geändert hat und du den obigen Code anpassen mußt. Mit der alten Version von Fiskaltrust war der obige Code lauffähig. Eigentlich habe ich mir das Json-Format von Excel-Beispiel abgeschaut. Damals war aber noch keine Rede von AccessToken und Cloud. Haben die dir ein PDF mit "Delphi Fiskaltrust Einbindung per WSDL Importer" mitgeschickt?
Gib bitte bescheid, falls du da was neues rausfindest, da es mich auch interessiert.
Lg,
jus
Geändert von jus ( 1. Feb 2017 um 01:13 Uhr)
|