Exemplo n.º 1
0
        public ExpressCheckoutResponse ExpressCheckout(Basket basket)
        {
            var executor = GetExecutor();
            ExpressCheckoutRequest request = new ExpressCheckoutRequest(executor);
            request.Currency = "GBP";

            return request.Execute(basket);
        }
Exemplo n.º 2
0
        public Basket GetBasket(Customer customer)
        {
            Basket basket;

            basket = HttpRuntime.Cache.Get("basket") as Basket; //TODO: Get real user

            if (basket != null) {
                return basket;
            }
            else {
                basket = new Basket();
                HttpRuntime.Cache.Insert("basket", basket);
                return basket;
            }
        }
Exemplo n.º 3
0
        public ExpressCheckoutResponse Execute(Basket basket)
        {
            HttpContext context = HttpContext.Current;
            HttpRequest request = context.Request;

            string domain = request.Url.Scheme + System.Uri.SchemeDelimiter + request.Url.Host + (request.Url.IsDefaultPort ? "" : ":" + request.Url.Port);

            //TODO: This needs to come from elsewhere
            this.ReturnUrl = domain + "/paypal/shipping";
            this.CancelUrl = domain + "/paypal/cancel";
            this.Currency = "GBP";

            NVPCodec encoder = new NVPCodec();

            encoder["METHOD"] = METHOD;
            encoder["RETURNURL"] = this.ReturnUrl;
            encoder["CANCELURL"] = this.CancelUrl;
            encoder["AMT"] = basket.SubTotal.ToString("#.##");
            encoder["PAYMENTACTION"] = PAYMENT_ACTION;
            encoder["CURRENCYCODE"] = this.Currency;

            ////Optional Shipping Address entered on the merchant site
            //encoder["SHIPTONAME"] = shipToName;
            //encoder["SHIPTOSTREET"] = shipToStreet;
            //encoder["SHIPTOSTREET2"] = shipToStreet2;
            //encoder["SHIPTOCITY"] = shipToCity;
            //encoder["SHIPTOSTATE"] = shipToState;
            //encoder["SHIPTOZIP"] = shipToZip;
            //encoder["SHIPTOCOUNTRYCODE"] = shipToCountryCode;

            var decoder = executorService.Execute(encoder);

            string strAck = decoder["ACK"].ToLower();
            if (strAck != null && (strAck == "success" || strAck == "successwithwarning"))
            {
                var token = decoder["TOKEN"];

                return new ExpressCheckoutResponse() { Token = token, RedirectUrl = "https://" + executorService.Host + "/cgi-bin/webscr?cmd=_express-checkout" + "&token=" + token };
            }
            else
            {

                throw new PayPalExeception(decoder["L_ERRORCODE0"], decoder["L_SHORTMESSAGE0"], decoder["L_LONGMESSAGE0"]);
            }
        }