15-09-2021, Saat: 10:16
Merhabalar,
Yazılımcım imzalama yapmam için bana aşağıdaki fonksiyonu verdi. Yalnız ben sgk için pdf imzalamak istediğimde direk pdf datasını string olarak göndermeyi beceremedim.
procedure imzalatext(const pinNo: WideString; sertifika_tipi: Integer; imza_profili: Integer;
const imzalanacak_text: WideString; out imzalanmis_text: WideString;
out err_code: Integer; out err_aciklama: WideString); safecall;
En son aşağıdaki fonksiyonu kullandım ama imzalanmış xml in içerisindeki pdf verisini ben zaten encode ederek fonksiyona gönderdiğim için iki kere encode edilmiş şekilde geliyor.
function Tfrmmain.LoadFileToBase64(const AFileName: string): string;
var
Encoder: TIdEncoderMIME;
Decoder: TIdDecoderMIME;
Base64String: string;
LStream: TBytesStream;
begin
Encoder := TIdEncoderMIME.Create;
LStream := TBytesStream.Create;
try
LStream.LoadFromFile(AFileName);
Base64String := Encoder.Encode(LStream);
finally
Result := Base64String;
FreeAndNil(Encoder);
FreeAndNil(LStream);
end;
end;
Yazılımcım imzalama yapmam için bana aşağıdaki fonksiyonu verdi. Yalnız ben sgk için pdf imzalamak istediğimde direk pdf datasını string olarak göndermeyi beceremedim.
procedure imzalatext(const pinNo: WideString; sertifika_tipi: Integer; imza_profili: Integer;
const imzalanacak_text: WideString; out imzalanmis_text: WideString;
out err_code: Integer; out err_aciklama: WideString); safecall;
En son aşağıdaki fonksiyonu kullandım ama imzalanmış xml in içerisindeki pdf verisini ben zaten encode ederek fonksiyona gönderdiğim için iki kere encode edilmiş şekilde geliyor.
function Tfrmmain.LoadFileToBase64(const AFileName: string): string;
var
Encoder: TIdEncoderMIME;
Decoder: TIdDecoderMIME;
Base64String: string;
LStream: TBytesStream;
begin
Encoder := TIdEncoderMIME.Create;
LStream := TBytesStream.Create;
try
LStream.LoadFromFile(AFileName);
Base64String := Encoder.Encode(LStream);
finally
Result := Base64String;
FreeAndNil(Encoder);
FreeAndNil(LStream);
end;
end;