procedure SendInvoiceWithAuthentication(EncryptedXMLBase64: Text[1000]; ClientID: Text[200]; SecretKey: Text[500])
var
HttpClient: HttpClient;
HttpRequestMessage: HttpRequestMessage;
HttpResponseMessage: HttpResponseMessage;
RequestHeaders: HttpHeaders;
JsonToken: JsonToken;
JsonObject: JsonObject;
BodyText: Text;
BaseUrl: Text;
ResponseContent: Text;
begin
BaseUrl := 'https://backend.jofotara.gov.jo/core/invoices/';
HttpRequestMessage.SetRequestUri(BaseUrl);
HttpRequestMessage.Method('POST');
// إضافة رؤوس الطلب ********************************************
HttpRequestMessage.GetHeaders(RequestHeaders);
RequestHeaders.Add('Client-Id', ClientID);
RequestHeaders.Add('Secret-Key', SecretKey);
RequestHeaders.Add('Content-Type', 'application/json');
// إعداد جسم الطلب *********************************************
JsonObject.Add('invoice', EncryptedXMLBase64);
JsonObject.WriteTo(BodyText);
HttpRequestMessage.Content.WriteFrom(BodyText);
// إرسال الطلب والتعامل مع الرد ********************************
if HttpClient.Send(HttpRequestMessage, HttpResponseMessage) then begin
HttpResponseMessage.Content.ReadAs(ResponseContent);
if HttpResponseMessage.IsSuccessStatusCode then begin
// الرد ناجح
// هنا يمكن تحليل الرد ومعالجة QR Code أو غيره
Message('Success: %1', ResponseContent);
end else begin
// الرد يدل على وجود خطأ
Message('Error: %1', ResponseContent);
end;
end else begin
Message('Failed to send request.');
end;
end;