public void IncludesFields() { string xml = "<paypal-details>" + "<payer-email>[email protected]</payer-email>" + "<payment-id>1234567890</payment-id>" + "<authorization-id>12345</authorization-id>" + "<token>token</token>" + "<image-url>www.image-url.com</image-url>" + "<debug-id>12345</debug-id>" + "<payee-id>6789</payee-id>" + "<payee-email>[email protected]</payee-email>" + "<custom-field>so custom much wow</custom-field>" + "<payer-id>1357</payer-id>" + "<payer-first-name>Grace</payer-first-name>" + "<payer-last-name>Hopper</payer-last-name>" + "<payer-status>status</payer-status>" + "<seller-protection-status>12345</seller-protection-status>" + "<refund-id>8675309</refund-id>" + "<capture-id>2468</capture-id>" + "<transaction-fee-amount>10.00</transaction-fee-amount>" + "<transaction-fee-currency-iso-code>123</transaction-fee-currency-iso-code>" + "<refund-from-transaction-fee-amount>2.00</refund-from-transaction-fee-amount>" + "<refund-from-transaction-fee-currency-iso-code>123</refund-from-transaction-fee-currency-iso-code>" + "<description>item</description>" + "<implicitly-vaulted-payment-method-token>implicittoken</implicitly-vaulted-payment-method-token>" + "<implicitly-vaulted-payment-method-global-id>implicitglobalid</implicitly-vaulted-payment-method-global-id>" + "<billing-agreement-id>billingagreementid</billing-agreement-id>" + "</paypal-details>"; var node = nodeFromXml(xml); PayPalDetails details = new PayPalDetails(node); Assert.AreEqual("*****@*****.**", details.PayerEmail); Assert.AreEqual("1234567890", details.PaymentId); Assert.AreEqual("12345", details.AuthorizationId); Assert.AreEqual("token", details.Token); Assert.AreEqual("www.image-url.com", details.ImageUrl); Assert.AreEqual("12345", details.DebugId); Assert.AreEqual("6789", details.PayeeId); Assert.AreEqual("*****@*****.**", details.PayeeEmail); Assert.AreEqual("so custom much wow", details.CustomField); Assert.AreEqual("1357", details.PayerId); Assert.AreEqual("Grace", details.PayerFirstName); Assert.AreEqual("Hopper", details.PayerLastName); Assert.AreEqual("status", details.PayerStatus); Assert.AreEqual("12345", details.SellerProtectionStatus); Assert.AreEqual("8675309", details.RefundId); Assert.AreEqual("2468", details.CaptureId); Assert.AreEqual("10.00", details.TransactionFeeAmount); Assert.AreEqual("123", details.TransactionFeeCurrencyIsoCode); Assert.AreEqual("2.00", details.RefundFromTransactionFeeAmount); Assert.AreEqual("123", details.RefundFromTransactionFeeCurrencyIsoCode); Assert.AreEqual("item", details.Description); Assert.AreEqual("implicittoken", details.ImplicitlyVaultedPaymentMethodToken); Assert.AreEqual("implicitglobalid", details.ImplicitlyVaultedPaymentMethodGlobalId); Assert.AreEqual("billingagreementid", details.BillingAgreementId); }
private PayPalToken GetAuthorizationToken() { PayPalDetails details = db.PayPalDetails.First(); PayPalToken token = null; if (details.Expires < DateTime.Now) { token = GetSetPayPalToken(); } else { token = new PayPalToken() { Access_Token = details.Token }; } return(token); }
public PayPalToken GetSetPayPalToken() { PayPalDetails details = db.PayPalDetails.First(); string ClientID = details.ClientID; string Secret = details.Secret; HttpClient client = new HttpClient(); StringContent content = new StringContent("grant_type=client_credentials", Encoding.UTF8, "application/x-www-form-urlencoded"); var bytes = Encoding.UTF8.GetBytes(ClientID + ":" + Secret); client.DefaultRequestHeaders.Add("Authorization", "Basic " + Convert.ToBase64String(bytes)); HttpResponseMessage response = client.PostAsync("https://api.paypal.com/v1/oauth2/token", content).Result; if (response.IsSuccessStatusCode) { string json = response.Content.ReadAsStringAsync().Result; PayPalToken token = JsonConvert.DeserializeObject <PayPalToken>(json); int seconds = int.Parse(token.Expires_In); details.Token = token.Access_Token; details.Expires = DateTime.Now.AddSeconds(seconds); db.SaveChanges(); return(token); } else { return(new PayPalToken() { Access_Token = "Failed" }); } }
public BillingSource(PayPalDetails paypal) { Type = PaymentMethodType.PayPal; Description = paypal.PayerEmail; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jsonObject = JObject.Load(reader); var paymentMethodDetails = default(IPaymentMethodDetails); switch (jsonObject["type"].ToString()) { case AchDetails.Ach: paymentMethodDetails = new AchDetails(); break; case AmazonPayDetails.AmazonPay: paymentMethodDetails = new AmazonPayDetails(); break; case AndroidPayDetails.AndroidPay: paymentMethodDetails = new AndroidPayDetails(); break; case ApplePayDetails.ApplePay: paymentMethodDetails = new ApplePayDetails(); break; case BacsDirectDebitDetails.Directdebit_GB: paymentMethodDetails = new BacsDirectDebitDetails(); break; case BilldeskOnlineDetails.BilldeskOnline: paymentMethodDetails = new BilldeskOnlineDetails(); break; case BilldeskWalletDetails.BilldeskWallet: paymentMethodDetails = new BilldeskWalletDetails(); break; case BlikDetails.Blik: paymentMethodDetails = new BlikDetails(); break; case CellulantDetails.Cellulant: paymentMethodDetails = new CellulantDetails(); break; case DokuDetails.Alfamart: case DokuDetails.Bcava: case DokuDetails.Bniva: case DokuDetails.Briva: case DokuDetails.Cimbva: case DokuDetails.Danamonva: case DokuDetails.Permataliteatm: case DokuDetails.Permatatm: case DokuDetails.Sinarmasva: case DokuDetails.Indomaret: case DokuDetails.Mandiriva: paymentMethodDetails = new DokuDetails(); break; case DotpayDetails.Dotpay: paymentMethodDetails = new DotpayDetails(); break; case DragonpayDetails.EBanking: case DragonpayDetails.OTCBanking: case DragonpayDetails.OTCNonBanking: case DragonpayDetails.OTCPhilippines: paymentMethodDetails = new DragonpayDetails(); break; case EcontextVoucherDetails.Stores: case EcontextVoucherDetails.Seveneleven: paymentMethodDetails = new EcontextVoucherDetails(); break; case EntercashDetails.Entercash: paymentMethodDetails = new EntercashDetails(); break; case GiropayDetails.Giropay: paymentMethodDetails = new GiropayDetails(); break; case GooglePayDetails.GooglePay: paymentMethodDetails = new GooglePayDetails(); break; case IdealDetails.Ideal: paymentMethodDetails = new IdealDetails(); break; case KlarnaDetails.Klarna: case KlarnaDetails.KlarnaAccount: case KlarnaDetails.KlarnaB2B: case KlarnaDetails.KlarnaPayNow: case KlarnaDetails.KlarnaPayments: case KlarnaDetails.KlarnaPaymentsAccount: case KlarnaDetails.KlarnaPaymentsB2B: paymentMethodDetails = new KlarnaDetails(); break; case LianLianPayDetails.EbankingCredit: case LianLianPayDetails.EbankingDebit: case LianLianPayDetails.EbankingEnterprise: paymentMethodDetails = new LianLianPayDetails(); break; case MasterpassDetails.Masterpass: paymentMethodDetails = new MasterpassDetails(); break; case MbwayDetails.Mbway: paymentMethodDetails = new MbwayDetails(); break; case MolPayDetails.EBankingDirectMY: case MolPayDetails.EBankingFPXMy: case MolPayDetails.EBankingMY: case MolPayDetails.EBankingTH: case MolPayDetails.EBankingVN: case MolPayDetails.FPX: paymentMethodDetails = new MolPayDetails(); break; case MobilePayDetails.Mobilepay: paymentMethodDetails = new MobilePayDetails(); break; case PayPalDetails.PayPal: paymentMethodDetails = new PayPalDetails(); break; case PayUUpiDetails.PayUinUPI: paymentMethodDetails = new PayUUpiDetails(); break; case QiwiWalletDetails.QiwiWallet: paymentMethodDetails = new QiwiWalletDetails(); break; case SamsungPayDetails.SamsungPay: paymentMethodDetails = new SamsungPayDetails(); break; case SepaDirectDebitDetails.Sepadirectdebit: paymentMethodDetails = new SepaDirectDebitDetails(); break; case UpiDetails.Upi: paymentMethodDetails = new UpiDetails(); break; case VippsDetails.Vipps: paymentMethodDetails = new VippsDetails(); break; case VisaCheckoutDetails.VisaCheckout: paymentMethodDetails = new VisaCheckoutDetails(); break; case WeChatPayDetails.Wechatpay: paymentMethodDetails = new WeChatPayDetails(); break; case WeChatPayMiniProgramDetails.WechatpayMiniProgram: paymentMethodDetails = new WeChatPayMiniProgramDetails(); break; default: paymentMethodDetails = new DefaultPaymentMethodDetails(); break; } serializer.Populate(jsonObject.CreateReader(), paymentMethodDetails); return(paymentMethodDetails); }
public async Task <ActionResult> BookFilm(int id) { var mf = db.MemberFilms.Where(m => m.FilmID == id && m.MemberID == CurrentMember.MemberID && m.Token != null).Any(); if (mf) { return(RedirectToAction("AlreadyBooked", "Members")); } bool blocked = await IsBlocked(id); if (blocked) { return(RedirectToAction("GeoBlocked")); } Film film = db.Films.Find(id); PayPalToken authToken = GetAuthorizationToken(); PayPalClientToken clientToken = null; PayPalDetails details = db.PayPalDetails.First(); if (authToken.Access_Token == "Failed") { clientToken = new PayPalClientToken() { client_id = details.ClientID, client_token = "FailedAuthorization" }; } else { clientToken = GetClientToken(authToken.Access_Token); clientToken.client_id = details.ClientID; } BookFilmViewModel vm = new BookFilmViewModel() { FilmID = id, ClientID = clientToken.client_id, ClientToken = clientToken.client_token }; if (film != null) { ViewBag.ShowingTime = film.Showing; } ViewBag.CurrentTime = await GetLocationTime(); if (film.FilmID == 242 || film.FilmID == 244 || film.FilmID == 245 || film.FilmID == 248) { ViewBag.Fiver = true; } else { ViewBag.Fiver = false; } return(View(vm)); }