public void OnPreAuthResponse(PreAuthResponse response) { OnPreAuthResponseMessage preAuthResponse = new OnPreAuthResponseMessage(); preAuthResponse.payload = response; WebSocket.Send(Serialize(preAuthResponse)); }
public void PreAuthResponse(HttpListenerContext context) { PreAuthResponse response = ParseResponse <PreAuthResponse>(context); if (response != null) { connectorListener.ForEach(listener => listener.OnPreAuthResponse(response)); } SendTextResponse(context, ""); }
public void PreAuthResponse(HttpListenerContext context) { try { PreAuthResponse response = ParseResponse <PreAuthResponse>(context); if (response != null) { connectorListener.ForEach(listener => listener.OnPreAuthResponse(response)); } SendTextResponse(context, ""); } catch (Exception e) { context.Response.StatusCode = 400; context.Response.StatusDescription = e.Message; SendTextResponse(context, "error processing request"); } }
public void OnPreAuthResponse(PreAuthResponse response) => Event?.Invoke(this, EventFrom("PreAuthResponse", response));
public void OnPreAuthResponse(PreAuthResponse response) { throw new NotImplementedException(); }
private void websocket_MessageReceived(object sender, MessageReceivedEventArgs e) { // do the parsing of the message, targeted for the callback listener JObject jsonObj = null; try { jsonObj = (JObject)JsonConvert.DeserializeObject(e.Message); } catch (Exception exc) { Console.WriteLine(exc.Message + " => " + e.Message); listeners.ForEach(listener => listener.OnDeviceError(new CloverDeviceErrorEvent(CloverDeviceErrorEvent.CloverDeviceErrorType.EXCEPTION, 0, exc.Message + " => " + e.Message))); return; } JToken method = jsonObj.GetValue(ServicePayloadConstants.PROP_METHOD); if (method == null) { listeners.ForEach(listener => listener.OnDeviceError(new CloverDeviceErrorEvent(CloverDeviceErrorEvent.CloverDeviceErrorType.VALIDATION_ERROR, 0, "Invalid message: " + e.Message))); return; } JObject payload = (JObject)jsonObj.GetValue(ServicePayloadConstants.PROP_PAYLOAD); WebSocketMethod wsm = (WebSocketMethod)Enum.Parse(typeof(WebSocketMethod), method.ToString()); switch (wsm) { case WebSocketMethod.DeviceActivityStart: { CloverDeviceEvent deviceEvent = JsonUtils.deserialize <CloverDeviceEvent>(payload.ToString()); listeners.ForEach(listener => listener.OnDeviceActivityStart(deviceEvent)); break; } case WebSocketMethod.DeviceActivityEnd: { CloverDeviceEvent deviceEvent = JsonUtils.deserialize <CloverDeviceEvent>(payload.ToString()); listeners.ForEach(listener => listener.OnDeviceActivityEnd(deviceEvent)); break; } case WebSocketMethod.DeviceError: { CloverDeviceErrorEvent deviceErrorEvent = JsonUtils.deserialize <CloverDeviceErrorEvent>(payload.ToString()); listeners.ForEach(listener => listener.OnDeviceError(deviceErrorEvent)); break; } case WebSocketMethod.DeviceConnected: { listeners.ForEach(listener => listener.OnDeviceConnected()); break; } case WebSocketMethod.DeviceDisconnected: { listeners.ForEach(listener => listener.OnDeviceDisconnected()); break; } case WebSocketMethod.DeviceReady: { MerchantInfo merchantInfo = JsonUtils.deserialize <MerchantInfo>(payload.ToString()); listeners.ForEach(listener => listener.OnDeviceReady(merchantInfo)); break; } case WebSocketMethod.VerifySignatureRequest: { VerifySignatureRequest svr = JsonUtils.deserialize <VerifySignatureRequest>(payload.ToString()); WebSocketSigVerRequestHandler handler = new WebSocketSigVerRequestHandler(this, svr); listeners.ForEach(listener => listener.OnVerifySignatureRequest(handler)); break; } case WebSocketMethod.SaleResponse: { SaleResponse sr = JsonUtils.deserialize <SaleResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnSaleResponse(sr)); break; } case WebSocketMethod.PreAuthResponse: { PreAuthResponse pr = JsonUtils.deserialize <PreAuthResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnPreAuthResponse(pr)); break; } case WebSocketMethod.AuthResponse: { AuthResponse ar = JsonUtils.deserialize <AuthResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnAuthResponse(ar)); break; } case WebSocketMethod.CapturePreAuthResponse: { CapturePreAuthResponse ar = JsonUtils.deserialize <CapturePreAuthResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnCapturePreAuthResponse(ar)); break; } case WebSocketMethod.RefundPaymentResponse: { RefundPaymentResponse sr = JsonUtils.deserialize <RefundPaymentResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnRefundPaymentResponse(sr)); break; } case WebSocketMethod.VoidPaymentResponse: { VoidPaymentResponse sr = JsonUtils.deserialize <VoidPaymentResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnVoidPaymentResponse(sr)); break; } case WebSocketMethod.ManualRefundResponse: { ManualRefundResponse sr = JsonUtils.deserialize <ManualRefundResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnManualRefundResponse(sr)); break; } case WebSocketMethod.TipAdjustAuthResponse: { TipAdjustAuthResponse taar = JsonUtils.deserialize <TipAdjustAuthResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnTipAdjustAuthResponse(taar)); break; } case WebSocketMethod.VaultCardResponse: { VaultCardResponse vcr = JsonUtils.deserialize <VaultCardResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnVaultCardResponse(vcr)); break; } case WebSocketMethod.ReadCardDataResponse: { ReadCardDataResponse rcdr = JsonUtils.deserialize <ReadCardDataResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnReadCardDataResponse(rcdr)); break; } case WebSocketMethod.CloseoutResponse: { CloseoutResponse cr = JsonUtils.deserialize <CloseoutResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnCloseoutResponse(cr)); break; } case WebSocketMethod.ConfirmPaymentRequest: { ConfirmPaymentRequest cpr = JsonUtils.deserialize <ConfirmPaymentRequest>(payload.ToString()); listeners.ForEach(listener => listener.OnConfirmPaymentRequest(cpr)); break; } case WebSocketMethod.RetrievePendingPaymentsResponse: { RetrievePendingPaymentsResponse rppr = JsonUtils.deserialize <RetrievePendingPaymentsResponse>(payload.ToString()); listeners.ForEach(listener => listener.OnRetrievePendingPaymentsResponse(rppr)); break; } case WebSocketMethod.PrintManualRefundDeclinedReceipt: { PrintManualRefundDeclineReceiptMessage pmrdrm = JsonUtils.deserialize <PrintManualRefundDeclineReceiptMessage>(payload.ToString()); listeners.ForEach(listener => listener.OnPrintManualRefundDeclineReceipt(pmrdrm)); break; } case WebSocketMethod.PrintManualRefundReceipt: { PrintManualRefundReceiptMessage pmrrm = JsonUtils.deserialize <PrintManualRefundReceiptMessage>(payload.ToString()); listeners.ForEach(listener => listener.OnPrintManualRefundReceipt(pmrrm)); break; } case WebSocketMethod.PrintPaymentDeclinedReceipt: { PrintPaymentDeclineReceiptMessage ppdrm = JsonUtils.deserialize <PrintPaymentDeclineReceiptMessage>(payload.ToString()); listeners.ForEach(listener => listener.OnPrintPaymentDeclineReceipt(ppdrm)); break; } case WebSocketMethod.PrintPaymentMerchantCopyReceipt: { PrintPaymentMerchantCopyReceiptMessage ppmcrm = JsonUtils.deserialize <PrintPaymentMerchantCopyReceiptMessage>(payload.ToString()); listeners.ForEach(listener => listener.OnPrintPaymentMerchantCopyReceipt(ppmcrm)); break; } case WebSocketMethod.PrintPaymentReceipt: { PrintPaymentReceiptMessage pprm = JsonUtils.deserialize <PrintPaymentReceiptMessage>(payload.ToString()); listeners.ForEach(listener => listener.OnPrintPaymentReceipt(pprm)); break; } case WebSocketMethod.PrintPaymentRefundReceipt: { PrintRefundPaymentReceiptMessage prprm = JsonUtils.deserialize <PrintRefundPaymentReceiptMessage>(payload.ToString()); listeners.ForEach(listener => listener.OnPrintRefundPaymentReceipt(prprm)); break; } } }
/// <summary> /// Perform login request /// </summary> /// <remarks>This step is to send the login request by using the PreAuth response</remarks> /// <param name="email">Microsoft account email</param> /// <param name="password">Account password</param> /// <param name="preAuth"></param> /// <returns></returns> public UserLoginResponse UserLogin(string email, string password, PreAuthResponse preAuth) { var request = new ProxiedWebRequest(preAuth.UrlPost, preAuth.Cookie); request.UserAgent = userAgent; string postData = "login="******"&loginfmt=" + Uri.EscapeDataString(email) + "&passwd=" + Uri.EscapeDataString(password) + "&PPFT=" + Uri.EscapeDataString(preAuth.PPFT); var response = request.Post("application/x-www-form-urlencoded", postData); if (Settings.DebugMessages) { ConsoleIO.WriteLine(response.ToString()); } if (response.StatusCode >= 300 && response.StatusCode <= 399) { string url = response.Headers.Get("Location"); string hash = url.Split('#')[1]; var request2 = new ProxiedWebRequest(url); var response2 = request2.Get(); if (response2.StatusCode != 200) { throw new Exception("Authentication failed"); } if (string.IsNullOrEmpty(hash)) { if (confirm.IsMatch(response2.Body)) { throw new Exception("Activity confirmation required"); } else { throw new Exception("Invalid credentials or 2FA enabled"); } } var dict = Request.ParseQueryString(hash); //foreach (var pair in dict) //{ // Console.WriteLine("{0}: {1}", pair.Key, pair.Value); //} return(new UserLoginResponse() { AccessToken = dict["access_token"], RefreshToken = dict["refresh_token"], ExpiresIn = int.Parse(dict["expires_in"]) }); } else { throw new Exception("Unexpected response. Check your credentials. Response code: " + response.StatusCode); } }
public void OnPreAuthResponse(PreAuthResponse response) { Send("/PreAuthResponse", Serialize(response)); }
public virtual void OnPreAuthResponse(PreAuthResponse response) { }
public void OnPreAuthResponse(PreAuthResponse response) => PreAuthResponse?.Invoke(this, response);
/// <summary> /// Perform login request /// </summary> /// <remarks>This step is to send the login request by using the PreAuth response</remarks> /// <param name="email">Microsoft account email</param> /// <param name="password">Account password</param> /// <param name="preAuth"></param> /// <returns></returns> public static Microsoft.LoginResponse UserLogin(string email, string password, PreAuthResponse preAuth) { var request = new ProxiedWebRequest(preAuth.UrlPost, preAuth.Cookie); request.UserAgent = userAgent; string postData = "login="******"&loginfmt=" + Uri.EscapeDataString(email) + "&passwd=" + Uri.EscapeDataString(password) + "&PPFT=" + Uri.EscapeDataString(preAuth.PPFT); var response = request.Post("application/x-www-form-urlencoded", postData); if (Settings.DebugMessages) { ConsoleIO.WriteLine(response.ToString()); } if (response.StatusCode >= 300 && response.StatusCode <= 399) { string url = response.Headers.Get("Location"); string hash = url.Split('#')[1]; var request2 = new ProxiedWebRequest(url); var response2 = request2.Get(); if (response2.StatusCode != 200) { throw new Exception("Authentication failed"); } if (string.IsNullOrEmpty(hash)) { throw new Exception("Cannot extract access token"); } var dict = Request.ParseQueryString(hash); //foreach (var pair in dict) //{ // Console.WriteLine("{0}: {1}", pair.Key, pair.Value); //} return(new Microsoft.LoginResponse() { Email = email, AccessToken = dict["access_token"], RefreshToken = dict["refresh_token"], ExpiresIn = int.Parse(dict["expires_in"]) }); } else { if (twoFA.IsMatch(response.Body)) { // TODO: Handle 2FA throw new Exception("2FA enabled but not supported yet. Use browser sign-in method or try to disable 2FA in Microsoft account settings"); } else if (invalidAccount.IsMatch(response.Body)) { throw new Exception("Invalid credentials. Check your credentials"); } else { throw new Exception("Unexpected response. Check your credentials. Response code: " + response.StatusCode); } } }
public void OnPreAuthResponse(PreAuthResponse response) { if (response.Success) { if (Result.AUTH.Equals(response.Payment.result)) { uiThread.Send(delegate (object state) { AlertForm.Show(this, "Card Authorized", "Payment was Pre-Authorized"); POSPayment preAuth = new POSPayment(response.Payment.id, response.Payment.order.id, null, response.Payment.amount); Store.AddPreAuth(preAuth); }, null); } } else if (response.Result.Equals(ResponseCode.FAIL)) { uiThread.Send(delegate (object state) { AlertForm.Show(this, response.Reason, response.Message); PaymentReset(); }, null); } else if (response.Result.Equals(ResponseCode.CANCEL)) { uiThread.Send(delegate (object state) { AlertForm.Show(this, response.Reason, response.Message); PaymentReset(); }, null); } }
public void OnPreAuthResponse(PreAuthResponse response) { Program.WriteLine(MethodBase.GetCurrentMethod().Name); }
public void OnPreAuthResponse(PreAuthResponse response) { }
public void OnPreAuthResponse(PreAuthResponse p0) { }