Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK (https://www.delphipraxis.net/170967-benoetige-hilfe-zur-umsetzung-der-ids-scnittstelle-von-itek.html)

sh17 22. Mär 2018 12:50

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
was ist mit form-id und form-name, die sind auch wichtig

IanVanDuck 22. Mär 2018 12:54

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Das hatte ich nicht. Ich dachte es reicht wenn ich die ganzen Daten (hookurl,kdnr usw.) per Post mitgebe und gut.
Ich wusste nicht das ich ein komplettes Formular senden muss.

sh17 22. Mär 2018 13:02

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Blödsinn, die werden ja gar nicht übertragen. Hab das selbst noch nicht eingebettet ausprobiert. Unterstützt WebBrowser per Standard Weiterleitung?

(Über die technische Eleganz der Schnittstelle lässt sich natürlich streiten. Aber naja.)

IanVanDuck 22. Mär 2018 13:38

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Scheinbar nicht.

Delphi-Quellcode:
  strData :=
    'KNDR=' + URLEncode(Edit1.Text) + '&' +
    'NAME_KUNDE=' + URLEncode(Edit2.Text) + '&' +
    'ACTION=' + URLEncode('SV') + '&' +
    'HOOKURL=' + URLEncode('http://.....................');

  PostData := VarArrayCreate([0, Length(strData) - 1], varByte);

  for i := 1 to Length(strData) do
    PostData[i-1] := Ord(strData[i]);

  Headers := 'Content-Type: multipart/form-data' + #10#13;
 
  WebBrowser1.Navigate('https://eshop................', EmptyParam, EmptyParam, PostData,Headers);
So hatte ich das versucht.

himitsu 22. Mär 2018 14:54

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Zitat:

Delphi-Quellcode:
#10#13

Sollen das ein oder zwei Zeilenumbrüche sein?

#10#13 ist falsch, wenn Windows-Zeilenumbruch CRLF, dann wäre es #13#10
oder bei zwei Zeilenumbrüchen #10#10 (CR+CR) oder #13#10#13#10 (CRLF+CRLF).

#10#13 (LF+CR) wäre Linux/Unix-Zeilenumbruch + alter Mac-Zeilenumbruch. (wobei Mac inzwischen von #13 auf #10 umgestiegen ist)

StamTheMan 10. Jul 2020 10:13

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Sorry wenn ich das Thema noch einmal aufgreife.

Ich erstelle gerade auch die Itek IDS Schnittstelle. Warenkorb senden klappt auch alles. Nur habe ich keinen Ansatz wie das HookURL Formular aussehen soll. Könnt ihr mir da kurz weiterhelfen.

Ich habe aktuell eine HTML Seite "warenkorb.html" erstellt. Die aber keinen Warenkorb erhält.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>
<form>
Warenkorb:<br/>
<input type="text" id="warenkorb" name="warenkorb" style="width: 750px; height: 666px" />

</form>
</body>

</html>
Es fehlt mir nur noch das HTML Formular aber hier stehe ich voll auf der Leitung
Danke und Grüße
Stam

sh17 10. Jul 2020 14:15

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Das läuft so, du erstellst die HTML-Seite mit dem Warenkorb und der Callback-URL

Code:
<!doctype html public "-//W3C//DTD HTML 3.2 //EN">
<html><head><title>IDS-Connect Schnittstelle WKS</title></head>
<body onload="document.forms['wks'].submit();">
<form id="wks" name="wks" action="https://haendler.de/ids" method="post">
<input type="hidden" name="kndnr" value="..." size="50" maxlength="50">
<input type="hidden" name="name_kunde" value="..." size="50" maxlength="50">
<input type="hidden" name="pw_kunde" value="...." size="50" maxlength="50">
<input type="hidden" name="version" value="1.3" size="5" maxlength="5">
<textarea cols="1" rows="1" name="warenkorb">
<?xml version="1.0" encoding="UTF-8"?>
<Warenkorb xmlns="http://www.itek.de/Shop-Anbindung/Warenkorb/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <WarenkorbInfo>
  <Date>2019-08-22</Date>
  <Time>11:52:40</Time>
  <Version>2.0</Version>
 </WarenkorbInfo>
 <Order>
  <OrderInfo>
  <InquiryNo>2019-20112</InquiryNo>
  <DeliveryDate>2019-08-22</DeliveryDate>
  <ModeOfShipment>Lieferung</ModeOfShipment>
  <Cur>EUR</Cur>
  </OrderInfo>
  <OrderItem>
  <ItemChara>normal</ItemChara>
  <RefItems>
  <Customer>MDU=</Customer>
  <CustomerSubNo>1</CustomerSubNo>
  </RefItems>
  <ArtNo>30126867</ArtNo>
  <Qty>1.00</Qty>
  <QU></QU>
  </OrderItem>
 </Order>
</Warenkorb>
</textarea>
<input type="hidden" name="action" value="WKS" size="3" maxlength="3">
<input type="hidden" name="hookurl" value="https://www.meineseite.de/idsconnect.php?sid=3FEFFA9C85464D0BB49375DA854A7A08" size="256" maxlength="256">
</form></body></html>
Die rufst du auf und landest im Shop. Wenn der Anwender dann auf IDS-Connect senden drückt, ruft der Shop den Callback mit den Daten auf.

https://www.meineseite.de/idsconnect...9375DA854A7A08

Das kann eine ganz normale PHP sein, Hauptsache https

Code:
<?
  if (!isset($_REQUEST["sid"]))
    exit;

  if (isset($_REQUEST["warenkorb"]))
  {
    $fp = fopen("../../idsconnect/".$_REQUEST["sid"], "w");
    fputs($fp, ( get_magic_quotes_gpc() ) ? stripslashes($_REQUEST["warenkorb"]) : $_REQUEST["warenkorb"]);
    fclose($fp);
?>
<html>
<head>
<title>IDS-SCHNITTSTELLE</title>
</head>
<body>
<h1>Schlie&szlig;en Sie nun den Browser und setzen Sie die Bearbeitung in der Software fort!</h1>  
</body>
</html>
<?
  }
  else
  {
    if (file_exists("../../idsconnect/".$_REQUEST["sid"]))
    {
      $datei = file("../../idsconnect/".$_REQUEST["sid"]);
      foreach($datei as $meine_datei)
      {
        echo $meine_datei;
      }
    }
  }
?>
Die speichert die Antwort vom Shop in eine Datei auf dem Webserver, die kannst Du dann öffnen und weiterverarbeiten.

StamTheMan 14. Jul 2020 13:39

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Hallo Sven,

vielen Dank für deine tolle Hilfe und Beispiele. Ich habe das von Dir mal so eingebaut. Das hat auch sehr gut geklappt. Die PHP Datei legt die Datei an.
Ich wollte mal nun einen anderen Versuch starten. Und zwar rufe ich ein WebBrowser Fenster in meiner Software auf. Mein Gedanke war nun bei der Warenkorb-Rückgabe bei LoadComplete der Website ein Objekt auszulesen das die Bezeichnung "Warenkorb" hat. Also das in dem der Warenkorb gespeichert ist. Ich habe das mal vor jahren in ASP gemacht. Hat auch gut funktioniert bis auf die Umlaute. Jetzt in meinem aktuellen Projekt hat ich auch keinen Windows Server laufen, dass ich eine ASP Seite verwenden kann. Möchte auch das schlankere PHP verwenden.

Meine aktuelle idsconnect.php
Code:
<html>
<head>
<title>IDS-SCHNITTSTELLE</title>
</head>
<body>
<h1>Warenkorb Rückgabe:</h1>
  <textarea id="warenkorb"><?php echo $_REQUEST["warenkorb"] ?></textarea>
</body>
</html>
Wenn ich das so mache, erhalte ich eine Fehlermeldung von ITEK mit der XML Verarbeitung. Ich habe festgestellt, dass wenn & Zeichen im Warenkorb sind geht es so nicht. In der Datei mit deinem Code wird das & Zeichen auch mit &amp; gespeichert. Somit kommt die ITEK-Validierung mit dem & Zeichen in der Textarea nicht klar. Kennst du noch eine Variante wie das & Zeichen in der Textarea auch wie in der Warenkorb-Datei angezeigt wird.

Sorry für die Fragen, aber Web-Code ist aktuell nicht meine Welt.

Grüße und Danke

sh17 14. Jul 2020 14:38

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Ich glaube ich verstehe nicht ganz was Du machen möchtest, oder Du, je nachdem.

Nochmal zum Verständnis, die HTML-Seite, die den Warenkorb enthält, muss auf keinem WebServer liegen. Die wird jedes mal on the fly und zum Wegwerfen neu aus der Software erzeugt, aufgerufen und dann muss deine Software warten, bis der Anwender den Warenkorb zurückschickt.

Mit dem neuen Edge Browser könntest Du das ganze komplett in die Anwendung einbetten, musst du aber nicht. Also HTML-Seite erzeugen, temporär speichern, per ShellExecute aufrufen und den Anwender machen lassen. Wenn er fertig ist, gespeicherte IDS-Datei aus der PHP abholen.

StamTheMan 14. Jul 2020 15:26

AW: benötige Hilfe zur Umsetzung der IDS - Scnittstelle von ITEK
 
Hallo Sven,

danke für den Hinweis. Jetzt habe ich es hinbekommen. Ich hole jetzt auch die Datei mit meiner Anwendung.

Danke noch mal!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:19 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz