protected async void OnNavigated(object sender, WebNavigatedEventArgs e) { progress.IsVisible = false; try { if (e.Url.StartsWith("http://35.202.198.25:81/RazorPayAPI/Charge.aspx")) { await GetTransaction(); using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(Convert.ToString(App.Current.Properties["BaseURL"])); // We want the response to be JSON. client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); List <System.Collections.Generic.KeyValuePair <string, string> > postData = new List <KeyValuePair <string, string> >(); postData.Add(new KeyValuePair <string, string>("grant_type", "password")); postData.Add(new KeyValuePair <string, string>("username", "Kiran")); postData.Add(new KeyValuePair <string, string>("password", "1234")); FormUrlEncodedContent content = new FormUrlEncodedContent(postData); // Post to the Server and parse the response. var response = client.PostAsync("Token", content).Result; if (response.IsSuccessStatusCode) { var jsonString = response.Content.ReadAsStringAsync(); OAuthToken responseData = JsonConvert.DeserializeObject <OAuthToken>(jsonString.Result); string Access_Token = responseData.access_token; App.Current.Properties["apitoken"] = Access_Token; } } if (App.Current.Properties.ContainsKey("apitoken")) { if (obj_CustomerParkingSlot != null && obj_CustomerVehiclePass == null) { if (obj_CustomerParkingSlot.LocationName != null && obj_CustomerParkingSlot.LocationName != "") { if (obj_CustomerParkingSlot.LocationName.ToUpper() == "CHECKOUT") { if (transactionID == "") { DisplayAlert("", "Payment Failed", "Ok"); App.Current.Properties["CustomerParkingSlotID"] = Convert.ToString(obj_CustomerParkingSlot.CustomerParkingSlotID); App.Current.Properties["CustomerID"] = Convert.ToString(obj_CustomerParkingSlot.CustomerID); return; } obj_CustomerParkingSlot.TransactionID = transactionID; var json = JsonConvert.SerializeObject(obj_CustomerParkingSlot); var content = new StringContent(json, Encoding.UTF8, "application/json"); CustomerParkingSlotDetails resultObj = dal_Customer.UpdateCheckOut(Convert.ToString(App.Current.Properties["apitoken"]), obj_CustomerParkingSlot); if (resultObj.CustomerParkingSlotID != 0) { App.Current.Properties["CustomerParkingSlotID"] = "0"; App.Current.Properties["CustomerID"] = obj_CustomerParkingSlot.CustomerID; Application.Current.SavePropertiesAsync(); DisplayAlert("", "Thank you for parking with us!", "Ok"); int CustomerID = 0; if (App.Current.Properties.ContainsKey("CustomerID")) { CustomerID = Convert.ToInt32(App.Current.Properties["CustomerID"]); } await Navigation.PushAsync(new Home(null, CustomerID)); } else { DisplayAlert("", "Insert Payment Failed", "Ok"); App.Current.Properties["CustomerID"] = obj_CustomerParkingSlot.CustomerID; await Application.Current.SavePropertiesAsync(); } } else { if (transactionID == "") { DisplayAlert("", "Payment Failed", "Ok"); App.Current.Properties["CustomerParkingSlotID"] = Convert.ToString(obj_CustomerParkingSlot.CustomerParkingSlotID); App.Current.Properties["CustomerID"] = Convert.ToString(obj_CustomerParkingSlot.CustomerID); return; } obj_CustomerParkingSlot.TransactionID = transactionID; var json = JsonConvert.SerializeObject(obj_CustomerParkingSlot); var content = new StringContent(json, Encoding.UTF8, "application/json"); CustomerParkingSlotDetails resultObj = dal_Customer.InsertCustomerParkingSlot(Convert.ToString(App.Current.Properties["apitoken"]), obj_CustomerParkingSlot); if (resultObj.CustomerParkingSlotID != 0) { App.Current.Properties["CustomerParkingSlotID"] = Convert.ToString(resultObj.CustomerParkingSlotID); App.Current.Properties["CustomerID"] = Convert.ToString(obj_CustomerParkingSlot.CustomerID); await Application.Current.SavePropertiesAsync(); await Navigation.PushAsync(new SessionHomeReceipt(resultObj)); } else { DisplayAlert("", "Insert Payment Failed", "Ok"); App.Current.Properties["CustomerID"] = obj_CustomerParkingSlot.CustomerID; await Application.Current.SavePropertiesAsync(); } } } else { if (transactionID == "") { DisplayAlert("", "Payment Failed", "Ok"); App.Current.Properties["CustomerParkingSlotID"] = Convert.ToString(obj_CustomerParkingSlot.CustomerParkingSlotID); App.Current.Properties["CustomerID"] = Convert.ToString(obj_CustomerParkingSlot.CustomerID); return; } obj_CustomerParkingSlot.TransactionID = transactionID; var json = JsonConvert.SerializeObject(obj_CustomerParkingSlot); var content = new StringContent(json, Encoding.UTF8, "application/json"); CustomerParkingSlotDetails resultObj = dal_Customer.InsertCustomerParkingSlot(Convert.ToString(App.Current.Properties["apitoken"]), obj_CustomerParkingSlot); if (resultObj.CustomerParkingSlotID != 0) { App.Current.Properties["CustomerParkingSlotID"] = Convert.ToString(resultObj.CustomerParkingSlotID); App.Current.Properties["CustomerID"] = obj_CustomerParkingSlot.CustomerID; await Application.Current.SavePropertiesAsync(); await Navigation.PushAsync(new SessionHomeReceipt(resultObj)); } else { DisplayAlert("", "Insert Payment Failed", "Ok"); App.Current.Properties["CustomerID"] = obj_CustomerParkingSlot.CustomerID; await Application.Current.SavePropertiesAsync(); } } } else if (obj_CustomerParkingSlot == null && obj_CustomerVehiclePass != null) { if (transactionID == "") { DisplayAlert("", "Payment Failed", "Ok"); App.Current.Properties["CustomerID"] = Convert.ToString(obj_CustomerVehiclePass.CustomerID); return; } obj_CustomerVehiclePass.TransactionID = transactionID; var json = JsonConvert.SerializeObject(obj_CustomerVehiclePass); var content = new StringContent(json, Encoding.UTF8, "application/json"); OCustomerVehiclePass resultObj; if (obj_CustomerVehiclePass.IsMultiLot) { resultObj = dal_Pass.InsertMultiStationCustomerVehiclePass(Convert.ToString(App.Current.Properties["apitoken"]), obj_CustomerVehiclePass); } else { resultObj = dal_Pass.InsertCustomerVehiclePass(Convert.ToString(App.Current.Properties["apitoken"]), obj_CustomerVehiclePass); } if (resultObj.CustomerVehiclePassID != 0) { App.Current.Properties["CustomerID"] = obj_CustomerVehiclePass.CustomerID; await Navigation.PushAsync(new PassReceipt(resultObj)); } else { DisplayAlert("", "Insert Payment Failed", "Ok"); App.Current.Properties["CustomerID"] = obj_CustomerVehiclePass.CustomerID; await Application.Current.SavePropertiesAsync(); } } } } } catch (Exception ex) { DisplayAlert("Failed - RazorPay", Convert.ToString(ex.Message), "Ok"); } }