public SaleResponse SaleVoid(string deviceUuid, SaleVoidRequest saleVoidRequest) { var request = new RestRequest("sale/void", Method.POST); request.AddQueryParameter("uuid", deviceUuid); request.AddJsonBody(saleVoidRequest); var response = _clientHttp.Execute(request); if (response.ErrorException != null) { throw new SmartPaymentException(response.ErrorException.Message); } var content = response.Content; if (response.StatusCode == HttpStatusCode.OK) { return(JsonUtils.DecodeJson <SaleResponse>(content)); } else { throw ProcessWebServiceException(content); } }
static void Main(string[] args) { var url = "http://127.0.0.1:8090"; //for http proxy //var proxyObject = new System.Net.WebProxy(); //proxyObject.Address = new Uri("https://1.2.3.4:8080"); Console.WriteLine("Client trying to connect to " + url + "..."); try { var client = new SmartPaymentClient(url); //client.HttpProxy = proxyObject; var devices = client.GetAllDevices(); Console.WriteLine("Trying to get all the devices...\r\n"); foreach (DeviceWithValidation device in devices) { Console.WriteLine("----------------------------------\r\n"); Console.WriteLine("Device: \r\n" + device.ToString()); } Console.WriteLine("----------------------------------\r\n"); Console.WriteLine("Web service config:\r\n"); var webserviceConfig = client.GetWebServiceConfig(); Console.WriteLine(webserviceConfig.ToString()); Console.WriteLine("----------------------------------\r\n"); Console.WriteLine("Sale 0.50 lei:\r\n"); //trying to get first device from device list var deviceUuid = ""; if (devices.Count > 0) { //extract the first valid device from list foreach (DeviceWithValidation dev in devices) { if (dev.IsValid) { deviceUuid = devices[0].Uuid; break; } } } if (string.IsNullOrEmpty(deviceUuid)) { Console.WriteLine("Device uuid is not specified!"); return; } // //SALE // var sr = new SaleRequest(); sr.Amount = 0.50m; sr.CurrencyName = "RON"; sr.CashBackAmount = 0.00m; //optional sr.TransactionEcrUuid = ""; //optional sr.PrintReceiptOnEcr = false; //optional var saleResponse = client.Sale(deviceUuid, sr); Console.WriteLine("Sale response:\r\n"); Console.WriteLine(saleResponse.ToString()); //if the sale was successful if (saleResponse.CardHostApprovedTransaction) { //SALE VOID var sv = new SaleVoidRequest(); sv.Amount = 0.50m; sv.CurrencyName = "RON"; sv.AuthorizationCode = saleResponse.AuthorizationCode; sv.ReceiptNumber = saleResponse.ReceiptNumber; sv.ReturnReferenceNumber = saleResponse.ReturnReferenceNumber; var saleVoidResponse = client.SaleVoid(deviceUuid, sv); Console.WriteLine("Sale void response:\r\n"); Console.WriteLine(saleVoidResponse.ToString()); //if the sale void was approved we launch the settlement report if (saleVoidResponse.CardHostApprovedTransaction) { var settlementRequest = new SettlementRequest(); settlementRequest.CurrencyName = "RON"; var settlementResponse = client.PrintSettlement(deviceUuid, settlementRequest); Console.WriteLine("Settlement response:\r\n"); Console.WriteLine(settlementResponse.ToString()); } } } catch (SmartPaymentException ex) { Console.WriteLine("Error received: \r\n"); Console.WriteLine(ex.ToString()); } Console.WriteLine("Press any key to exit."); Console.ReadLine(); }