private async void ResponseUrlPayment(string url)
        {
            if (yaNO)
            {
                return;
            }

            yaNO = true;
            if (url.Contains("back"))
            {
                await _navigationService.GoBackAsync();
            }
            else
            {
                var dic = GetParams(url);
                Analytics.TrackEvent(url);
                var EstatusPago = dic.Where(e => e.Key == "vpc_TxnResponseCode").ToList().First().Value;
                if (EstatusPago == "0")
                {
                    Analytics.TrackEvent("ok code");
                    var request = new GetContractListRequest {
                        Email = DatosPago.email
                    };

                    if (await CallServiceAsync <GetContractListRequest, Models.Responses.GetBalanceListResponse>(request, "Actualizando pago", true) is Models.Responses.GetBalanceListResponse response && response.Success)
                    {
                        Analytics.TrackEvent("ok response");
                        var seleccionado = response.BalanceList.Where(t => t.Nis == DatosPago.NIS_RAD.ToString()).First();
                        var fecha        = seleccionado.v_fecsec.Remove(seleccionado.v_fecsec.Length - 1);

                        fecha             = new string(fecha.Skip(6).Take(2).ToArray()) + new string(fecha.Skip(4).Take(2).ToArray()) + new string(fecha.Take(4).ToArray());
                        DatosPago.NIS_RAD = int.Parse(seleccionado.Nis);
                        DatosPago.SEC_NIS = seleccionado.SecNis ?? 0;
                        DatosPago.F_FACT  = fecha;
                        var pay = new PAGOSRequest
                        {
                            v_f_fact            = DatosPago.F_FACT,
                            v_importe           = DatosPago.v_importe / 100,
                            v_nis_rad           = DatosPago.NIS_RAD,
                            v_referencia        = DatosPago.v_referencia,
                            v_sec_nis           = DatosPago.SEC_NIS,
                            v_sec_rec           = DatosPago.SEC_REC,
                            v_fecha_vencimiento = seleccionado.ExpirationDate
                        };
                        string json = JsonConvert.SerializeObject(pay);
                        await sadmApiService.CallServiceAsync <PAGOSRequest, Models.Responses.ResponseBase>(pay);

                        await _hudService.ShowSuccessMessageAsync("Pago realizado con éxito.");

                        await _navigationService.NavigateAsync(new Uri($"/{nameof(LateralMenuPage)}/{nameof(NavigationPage)}/{nameof(BalancesPage)}", UriKind.Absolute));
                    }
                    else
                    {
                        Analytics.TrackEvent("Error response");
                        await _hudService.ShowErrorAsync("Ocurrio un error en el pago intente de nuevo.");

                        await _navigationService.GoBackAsync();
                    }
                }
示例#2
0
        protected async Task <string> GetToken()
        {
            if (token == null || DateTime.Now >= expireDateTime)
            {
                var response = await sadmApiService.CallServiceAsync <GetAppTokenRequest, GetAppTokenResponse>(new GetAppTokenRequest());

                expireDateTime = DateTime.Now.Add(TimeSpan.FromSeconds(response.ExpiresIn));
                token          = response.Token;
            }
            if (token is null)
            {
                throw new ApiTokenException();
            }
            return(token);
        }