Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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");
            }
        }