protected TypeOfCreditCard GetTypeOfCreditCard() { var result = TypeOfCreditCard.Unknown; if (CardNumber == null) { result = TypeOfCreditCard.Unknown; } else if (Regex.Match(CardNumber.Replace(" ", ""), "^4[0-9]{6,}$").Length != 0) { result = TypeOfCreditCard.Visa; } else if (Regex.Match(CardNumber.Replace(" ", ""), "^5[1-5][0-9]{5,}$").Length != 0) { result = TypeOfCreditCard.MasterCard; } else if (Regex.Match(CardNumber.Replace(" ", ""), "^3[47][0-9]{5,}$").Length != 0) { result = TypeOfCreditCard.AmEx; } else if (Regex.Match(CardNumber.Replace(" ", ""), "^6(?:011|5[0-9]{2})[0-9]{3,}$").Length != 0) { result = TypeOfCreditCard.Discover; } return(result); }
private async void Pay() { var token = stripePaymentService.GeneratePaymentToken(new Models.CardModel { Number = CardNumber.Replace(" ", string.Empty), ExpMonth = Convert.ToInt16(Expiry.Substring(0, 2)), ExpYear = Convert.ToInt16(Expiry.Substring(3, 2)), Cvc = Cvv, Name = "Brice Devos", AddressCity = "Paris", AddressZip = "75008", AddressCountry = "France", AddressLine1 = "16 Rue Victor Hugo" }); var success = await stripePaymentService.PayWithCard(new Models.PaymentModel { Amount = Convert.ToInt16(Amount) * 100, Token = token, Description = "Stripe test payment subscription" }); }
private async void Approve_Click(object sender, RoutedEventArgs e) { if (!IsAllFieldsFilled()) { MessageBox.Show(AppResources.Msg_AllFieldsRequired, AppResources.MsgHdr_AllFieldsRequired, MessageBoxButton.OK); return; } gr_busy.Visibility = Visibility.Visible; var card = new Card { Number = CardNumber.Replace(" ", ""), ExpMonth = ExpMonth, ExpYear = ExpYear, Cvc = CVC, Name = NameOnCard }; if (IsAddressRequired) { card.AddressLine1 = BillingAddress; card.AddressZip = ZipCode; card.AddressState = State; } var api = new PaymentsApi(); try { cardToken = await api.CreateCardToken(card, publicKey); } catch (Exception ex) { RaiseEventHandler(false, ex); return; } //TODO: just for testing, remove befor rls MessageBox.Show(await Task.Factory.StartNew(() => JsonConvert.SerializeObject(cardToken)), "response from simplify", MessageBoxButton.OK); var request = new PayNowRequest { TokenId = cardToken.Id, Amount = Amount, ItemName = ItemName }; var baseLength = callbackUrl.LastIndexOf('/') + 1; var baseAddress = callbackUrl.Substring(0, baseLength); var requestUri = callbackUrl.Substring(baseLength); var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var requestBody = await Task.Factory.StartNew(() => JsonConvert.SerializeObject(request, settings)); try { using (var client = new HttpClient()) { client.Timeout = new TimeSpan(0, 0, TIMEOUT); client.BaseAddress = new Uri(baseAddress); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.UserAgent.Clear(); client.DefaultRequestHeaders.UserAgent.ParseAdd("Simplify-PayNowUC-for-WP"); using (var response = await client.PostAsync(requestUri, new StringContent(requestBody, Encoding.UTF8, "application/json"))) { RaiseEventHandler(true, response); } } } catch (TaskCanceledException) { RaiseEventHandler(false, new TimeoutException()); } catch (Exception ex) { RaiseEventHandler(false, ex); } }