public string SendPayment(PaypalPaymentParam paymentParam) { try { APIContext apiContext = PaypalConfig.GetAPIContext(); var guid = Convert.ToString((new Random()).Next(100000)); var createdPayment = CreatePayment(apiContext, paymentParam.CallbackUrl + "?guid=" + guid, paymentParam); var links = createdPayment.links.GetEnumerator(); string paypalRedirectUrl = null; while (links.MoveNext()) { Links lnk = links.Current; if (lnk.rel.ToLower().Trim().Equals("approval_url")) { paypalRedirectUrl = lnk.href; } } paymentParam.Session.Add(guid, ((Payment)createdPayment).id); return(paypalRedirectUrl); } catch { return("NG"); } }
private float GetTotalMoney(PaypalPaymentParam paymentParam) { float total = paymentParam.Shipping + paymentParam.Tax; foreach (Item item in paymentParam.Items) { total += float.Parse(item.price) * float.Parse(item.quantity); } return(total); }
private ItemList GetItemList(PaypalPaymentParam paymentParam) { var itemList = new ItemList() { items = new List <Item>() }; itemList.items.AddRange(paymentParam.Items); return(itemList); }
public float SendPaymentByCreditCard(PaypalPaymentParam paymentParam) { CreditCard creditCard = new CreditCard() { billing_address = new Address() { city = "Johnstown", country_code = "US", line1 = "52 N Main ST", postal_code = "43210", state = "OH" }, cvv2 = paymentParam.CreditCard.cvv2, expire_month = paymentParam.CreditCard.expire_month, expire_year = paymentParam.CreditCard.expire_year, first_name = paymentParam.CreditCard.first_name, last_name = paymentParam.CreditCard.last_name, type = "visa", number = paymentParam.CreditCard.number, }; FundingInstrument fundInstrument = new FundingInstrument(); fundInstrument.credit_card = creditCard; var fundingInstruments = new List <FundingInstrument>(); fundingInstruments.Add(fundInstrument); Payer payer = new Payer() { funding_instruments = fundingInstruments, payment_method = "credit_card" }; var payment = new Payment() { intent = "sale", payer = payer, transactions = GetTransactions(paymentParam), }; try { APIContext apiContext = PaypalConfig.GetAPIContext(); Payment createdPayment = payment.Create(apiContext); if (createdPayment.state.ToLower() != "approved") { return(-1); } return(GetTotalMoney(createdPayment.transactions));; } catch { return(-1); } }
private List <Transaction> GetTransactions(PaypalPaymentParam paymentParam) { var transactions = new List <Transaction>(); // Adding description about the transaction transactions.Add(new Transaction() { description = paymentParam.Description, invoice_number = paymentParam.InvoiceNumber, //Generate an Invoice No amount = GetAmount(paymentParam), item_list = GetItemList(paymentParam) }); return(transactions); }
private Amount GetAmount(PaypalPaymentParam paymentParam) { var details = new Details() { tax = paymentParam.Tax.ToString(), shipping = paymentParam.Shipping.ToString(), subtotal = (paymentParam.Tax + paymentParam.Shipping).ToString(), }; var amount = new Amount() { currency = CommonConstants.CURRENCY, total = GetTotalMoney(paymentParam).ToString(), // Total must be equal to sum of tax, shipping and subtotal. details = details.subtotal == "0" ? null : details }; return(amount); }
private Payment CreatePayment(APIContext apiContext, string redirectUrl, PaypalPaymentParam paymentParam) { var payer = new Payer(); payer.payment_method = paymentParam.PaymentMethod; var redirectUrls = new RedirectUrls() { cancel_url = redirectUrl + "&Cancel=true", return_url = redirectUrl }; payment = new Payment() { intent = "sale", payer = payer, transactions = GetTransactions(paymentParam), redirect_urls = redirectUrls }; return(payment.Create(apiContext)); }