Hallo,
Ich antworte darauf jetzt mal trotz des hohen Alters des Threads weil ich an diesem Problem tagelang verzweifelt bin und das für die Nachwelt sicher ganz nützlich sein könnte:
Auf diese Weise füllt man diese Felder:
1)
XML-Daten erstellen
2) Prüfsumme mit folgendem Algorithmus berechnen:
Delphi-Quellcode:
function CalcEbayXMLChecksum(AXMLDaten: String): Char;
var AnsiXML: AnsiString;
CheckSum: Byte;
i: Integer;
begin
AnsiXML := AnsiString(AXMLDaten);
CheckSum := 0;
for i := 1 to Length(AnsiXML) do
CheckSum := CheckSum xor Ord(AnsiXML[i]);
Result := Chr(checkSum);
end;
3) Prüfsumme an die
XML-Daten dranhängen
XMLDaten := XMLDaten + CalcEbayXMLChecksum(XMLDaten);
4)
XML-Daten Base64 codieren
Delphi-Quellcode:
uses EncdDecd;
// Bzw. Soap.EncdDecd
Base64XML :=
String(EncodeBase64(@XMLDaten[1],SizeOf(Char)*Length(XMLDaten)));
5) Zeilenumbrüche (sLinebreak) im Base64-String durch '%0d%0a' ersetzen
Base64XML := StringReplace(Base64XML,sLinebreak,'%0d%0a',[rfReplaceAll]);
6) Fertig.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."