/// <summary> /// Generates the invoice. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public PaymentResponse GenerateInvoice(PayfortInvoiceRequestModel request) { //Declarations var errInfo = new PaymentResponse(); errInfo.BookingRefNumber = request.BookingReference; request.RequestExpiryDate = DateTimeOffset.UtcNow.AddDays(24); errInfo.RequestExpiryDate = request.RequestExpiryDate; if (request != null) { //1. Generate SHA256 Signature request.Signature = request.GenerateInvoiceSHA256Signature(); //2. Generate Json Request Parameter var jsonRequest = request.GetInvoiceRequestParams(); //3. Send Request return(InvoiceProcessor.Invoice(jsonRequest, request.Url, errInfo)); } else { return(ExceptionHandler.ExceptionHandler.GetPayfortExceptionResponseInfo(errInfo, PaymentCommandType.AUTHORIZATION)); } }