private static async Task Run() { var connector = CloverConnectorFactory.CreateUsbConnector("RAID", "POS", "Register1", false); var listener = new Listener(connector); connector.AddCloverConnectorListener(listener); listener.DeviceReadyPromise = new TaskCompletionSource <MerchantInfo>(); connector.InitializeConnection(); await listener.DeviceReadyPromise.Task; listener.ResetDeviceResponsePromise = new TaskCompletionSource <ResetDeviceResponse>(); connector.ResetDevice(); await listener.ResetDeviceResponsePromise.Task; listener.SaleResponsePromise = new TaskCompletionSource <SaleResponse>(); connector.Sale(new SaleRequest { ExternalId = ExternalIDUtil.GenerateRandomString(32), Amount = 123 }); var sale = await listener.SaleResponsePromise.Task; await Task.Delay(100); connector.Dispose(); }
static void Main(string[] args) { cloverConnector = CloverConnectorFactory.createICloverConnector(SampleUtils.GetNetworkConfiguration()); var ccl = new ExampleCloverConnectionListener(cloverConnector); cloverConnector.AddCloverConnectorListener(ccl); cloverConnector.InitializeConnection(); while (!ccl.deviceReady) { Thread.Sleep(1000); } var pendingSale = new SaleRequest(); pendingSale.ExternalId = ExternalIDUtil.GenerateRandomString(13); pendingSale.Amount = 1000; pendingSale.AutoAcceptSignature = true; pendingSale.AutoAcceptPaymentConfirmations = true; pendingSale.DisableDuplicateChecking = true; cloverConnector.Sale(pendingSale); while (!ccl.saleDone) { Thread.Sleep(1000); } Console.ReadKey(); }
public static void testPaymentAndVoid(CloverConnector cloverConnector, TestConnectorListener connListener) { //BEGIN: Test Void SaleRequest paymentRequest = new SaleRequest(); paymentRequest.ExternalId = ExternalIDUtil.GenerateRandomString(13); paymentRequest.Amount = 1324; paymentRequest.TipAmount = 123; System.Console.WriteLine("Preparing To Test Sale: $" + paymentRequest.Amount * 100.00); System.Console.WriteLine("Press Any Key to Continue..."); System.Console.ReadKey(); //cloverConnector.Sales += paymentListener; cloverConnector.Sale(paymentRequest); while (!connListener.hasResponse) { System.Console.WriteLine("Waiting for paymentResponse"); System.Threading.Thread.Sleep(1000); } SaleResponse response = connListener.saleResponse; string paymentId = response.Payment.id; string orderId = response.Payment.order.id; string employeeId = response.Payment.employee.id; VoidPaymentRequest voidRequest = new VoidPaymentRequest(); voidRequest.OrderId = orderId; voidRequest.PaymentId = paymentId; voidRequest.EmployeeId = employeeId; voidRequest.VoidReason = VoidReason.USER_CANCEL.ToString(); cloverConnector.VoidPayment(voidRequest); while (!connListener.hasResponse) { System.Console.WriteLine("Waiting for voidResponse"); System.Threading.Thread.Sleep(1000); } VoidPaymentResponse voidResponse = connListener.voidPaymentResponse; System.Console.WriteLine(voidResponse.Result); //END: Test Void }
public static String GetNextId() { return(ExternalIDUtil.GenerateRandomString(13)); }
public void Run() { var command = "help"; while (true) { switch (command) { case "help": Program.WriteLine(string.Join(Environment.NewLine, "COMMANDS:", " help - Displays help", " sale - Performs a sale", " status - Retrieves the device status", " resend - Resends the last device message", " enter - Sends 'ENTER' key to device", " esc - Sends 'ESC' key to device", " reset - Resets the device", " exit - Exits the program" ), ConsoleColor.White); break; case "sale": Connector.Sale(new SaleRequest { Amount = 123, ExternalId = ExternalIDUtil.GenerateRandomString(32) }); break; case "status": Connector.RetrieveDeviceStatus(new RetrieveDeviceStatusRequest { sendLastMessage = false }); break; case "resend": Connector.RetrieveDeviceStatus(new RetrieveDeviceStatusRequest { sendLastMessage = true }); break; case "enter": // NOTE: The input option is listed in the 'timeout' CloverDeviceEvent in ICloverConnectorListener.OnDeviceActivityStart Connector.InvokeInputOption(new InputOption { description = "OK", keyPress = KeyPress.ENTER }); break; case "esc": Connector.InvokeInputOption(new InputOption { description = "ESC", keyPress = KeyPress.ENTER }); break; case "reset": Connector.ResetDevice(); break; case "exit": return; } command = Program.Prompt("Command?"); } }