public async Task <MerchantApiResponse> GenerateOtp(string phone_number, string reg_token) { string hashKey = System.Web.HttpUtility.UrlEncode(DependencyService.Get <IHashService>().GenerateHashkey()); string url = string.Format("{0}{1}", baseUrl, "generateOtp_deliveryboy"); var uri = new Uri(url); Dictionary <string, string> payload = new Dictionary <string, string>(); payload.Add("phone_number", phone_number); payload.Add("reg_token", reg_token); payload.Add("hash_key", hashKey); var json = JsonConvert.SerializeObject(payload); Console.WriteLine("GenerateOtp", @"\t GenerateOtp Payload is " + json); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await _client.PostAsync(uri, content); var rcontent = await response.Content.ReadAsStringAsync(); Console.WriteLine("GenerateOtp", @"\tGenerate OTP response is " + rcontent); MerchantApiResponse robject = JsonConvert.DeserializeObject <MerchantApiResponse>(rcontent); Console.WriteLine(robject.Status); RegToken = robject; return(RegToken); }
public async void sentOtpBtn_Clicked(object sender, EventArgs e) { if (CrossConnectivity.Current.IsConnected) { var app = Application.Current as App; this.IsBusy = true; sentOtpBtn.IsEnabled = false; string PhoneNumber = phoneNumber.Text; if (PhoneNumber.Length != 10) { await DisplayAlert("Incorrect Number", "Please enter a 10 digit Phone Number", "OK"); sentOtpBtn.IsEnabled = true; this.IsBusy = false; return; } // Firebase token generation CrossFirebasePushNotification.Current.OnTokenRefresh += (s, p) => { System.Diagnostics.Debug.WriteLine($"NEW TOKEN : {p.Token}"); }; string token = CrossFirebasePushNotification.Current.Token; app.FireBaseToken = token; CrossFirebasePushNotification.Current.OnNotificationReceived += (s, p) => { System.Diagnostics.Debug.WriteLine("Received"); }; Debug.WriteLine(@"Invoking the rest generate otp APi "); MerchantApiResponse Merchantdata = await RestService.Instance.GenerateOtp(PhoneNumber, token); DependencyService.Get <IHashService>().StartSMSRetriverReceiver(); Debug.WriteLine(@"Response received " + Merchantdata); Debug.WriteLine(@"AccessKey" + Merchantdata.AccessKey); if (Merchantdata.Status.ToLower() == "success") { //CommonServices.ListenToSmsRetriever(); OtpPage view = new OtpPage(); view.Initialize(new Dictionary <string, string>() { { "phoneNumber", phoneNumber.Text }, { "AccessKey", Merchantdata.AccessKey }, { "Id", Merchantdata.Data.Id }, { "role", Merchantdata.Data.Role }, { "name", Merchantdata.Data.Name } }); await Navigation.PushModalAsync(view); await Task.Delay(10); this.IsBusy = false; sentOtpBtn.IsEnabled = true; } else { this.IsBusy = false; sentOtpBtn.IsEnabled = true; await DisplayAlert("Alert", "Phone Number is not registered, please contact your merchant", "ok"); } } else { DependencyService.Get <IToastMessage>().ShortTime("Check your Internet Connection and try again"); } }