Einzelnen Beitrag anzeigen

jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Wie anmelden an entfernten Webservice per Headerinfo?

  Alt 1. Feb 2017, 00: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 00:13 Uhr)
  Mit Zitat antworten Zitat