internal async void RegisterCardHandler(object sender, IResult <ITransactionResult> result) { await Navigation.PopAsync(); if (result.HasError) { await DisplayAlert("Error adding card", "Code: " + result.Error.Code, "OK"); } else if ("Success".Equals(result.Response.Result)) { var receipt = result.Response as PaymentReceiptModel; var cardType = (CardNetwork)Enum.Parse(typeof(CardNetwork), receipt.CardDetails.CardType.ToString()); var token = new TokenPaymentViewModel { LastFour = receipt.CardDetails.CardLastfour, ExpiryDate = receipt.CardDetails.EndDate, CardType = cardType, Token = receipt.CardDetails.CardToken, ConsumerToken = receipt.Consumer.ConsumerToken, ConsumerReference = receipt.Consumer.YourConsumerReference }; Settings.CardToken = JsonConvert.SerializeObject(token); if (await DisplayAlert("Card added", "Perform token payment?", "Yes", "No")) { var page = new TokenPaymentPage(BuildJudo(), new TokenPaymentDefaultsViewModel(token.LastFour, token.ExpiryDate, token.Token, token.ConsumerToken, token.CardType)); page.resultHandler += Handler; await Navigation.PushAsync(page); } } }
async void ShowTokenPaymentForm(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(Settings.CardToken)) { var page = new TokenPaymentPage(BuildJudo(), GetTokenViewModel()); page.ResultHandler += PaymentResultHandler; await Navigation.PushAsync(page); } else { await DisplayAlert("No card saved", "Add card before attempting token payment", "OK"); } }