Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        private ItemList GetItemList(PaypalPaymentParam paymentParam)
        {
            var itemList = new ItemList()
            {
                items = new List <Item>()
            };

            itemList.items.AddRange(paymentParam.Items);

            return(itemList);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }