/// <summary> /// Make refund payment. /// </summary> /// <param name="request">Request for refund.</param> /// <returns>A task that can await until the refund has completed.</returns> private RefundPaymentTerminalDeviceResponse RefundPayment(RefundPaymentTerminalDeviceRequest request) { ThrowIf.Null(request, nameof(request)); PaymentInfo paymentInfo = Utilities.WaitAsyncTask(() => this.RefundPaymentAsync(request.Amount, request.Currency, request.IsManualEntry, request.ExtensionTransactionProperties)); return(new RefundPaymentTerminalDeviceResponse(paymentInfo)); }
public string BuildRefundPaymentRequest(RefundPaymentTerminalDeviceRequest refundRequest, string invoiceId, string workStationId) { string refundRequestXML = ""; try { refundRequestXML = $"<?xml version =\"1.0\"?> <CardServiceRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" RequestType=\"PaymentRefund\" WorkstationID=\"{workStationId}\" RequestID=\"{invoiceId}\" xmlns=\"http://www.nrf-arts.org/IXRetail/namespace\"> <POSdata> <POSTimeStamp>{DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz")}</POSTimeStamp> <ClerkID> 123456 </ClerkID> <ManualPAN> false </ManualPAN> </POSdata> <TotalAmount Currency=\"GBP\"> {refundRequest.Amount} </TotalAmount> </CardServiceRequest>"; } catch (Exception ex) { Logger.WriteLog($"Exception in BuildRefundPaymentRequest() {ex}"); } return(refundRequestXML); }