public ActionResult Buy()
        {
            var paymentRequest = new CheckoutPageRequest();

            paymentRequest.AdultContent     = false;
            paymentRequest.Amount           = "5.50";
            paymentRequest.PaymentInfo      = "Test";
            paymentRequest.Title            = "My new Phone";
            paymentRequest.Description      = "Buy your favorite Sony Phone!";
            paymentRequest.AdultContent     = false;
            paymentRequest.Roaming          = false;
            paymentRequest.MerchantId       = MerchantId;
            paymentRequest.CancelUrl        = BaseReturnUrl + "?uid=43c2&sid=dc0d&purchase=cancel";
            paymentRequest.ErrorUrl         = BaseReturnUrl + "?uid=43c2&sid=dc0d&purchase=error";
            paymentRequest.SuccessUrl       = BaseReturnUrl + "?uid=43c2&sid=dc0d&purchase=success";
            paymentRequest.CpServiceId      = "xys-323-gh-ff";
            paymentRequest.CpSubscriptionId = "23hkb379oh";
            paymentRequest.CpUserId         = "vghv5678";
            paymentRequest.ImageUrl         = "http://lorempixel.com/300/200";
            paymentRequest.ContentType      = "App";
            paymentRequest.StoreSource      = "Easypay-City";

            var easypayConfig = GetEasypayConfig();

            easypayConfig.Basepath = "/charging-engine-checkout";
            var url = EasypayRequest.GetCheckoutPageUrl(easypayConfig, paymentRequest);

            return(Redirect(url.ToString()));
        }
        public WebPage()
        {
            InitializeComponent();

            Trace.WriteLine("Webpage loaded");

            var paymentRequest = new CheckoutPageRequest();

            paymentRequest.AdultContent     = false;
            paymentRequest.Amount           = "5.50";
            paymentRequest.PaymentInfo      = "Test";
            paymentRequest.Title            = "My new Phone";
            paymentRequest.Description      = "Buy your favorite Sony Phone!";
            paymentRequest.AdultContent     = false;
            paymentRequest.Roaming          = false;
            paymentRequest.MerchantId       = MerchantId;
            paymentRequest.CancelUrl        = BaseReturnUrl + "?uid=43c2&sid=dc0d&purchase=cancel";
            paymentRequest.ErrorUrl         = BaseReturnUrl + "?uid=43c2&sid=dc0d&purchase=error";
            paymentRequest.SuccessUrl       = BaseReturnUrl + "?uid=43c2&sid=dc0d&purchase=success";
            paymentRequest.CpServiceId      = "xys-323-gh-ff";
            paymentRequest.CpSubscriptionId = "23hkb379oh";
            paymentRequest.CpUserId         = "vghv5678";
            paymentRequest.ImageUrl         = "http://lorempixel.com/300/200";
            paymentRequest.ContentType      = "App";
            paymentRequest.StoreSource      = "Easypay-City";

            var easypayConfig = GetEasypayConfig();

            easypayConfig.Basepath = "/charging-engine-checkout";
            var url = EasypayRequest.GetCheckoutPageUrl(easypayConfig, paymentRequest);

            checkoutView.Navigate(url);

            checkoutView.Navigated += CheckoutView_Navigated;
        }
Esempio n. 3
0
        public void TestGetCheckoutPageUrl()
        {
            var paymentRequest = new CheckoutPageRequest
            {
                AdultContent = false,
                Amount       = "5.50",
                PaymentInfo  = "Test"
            };

            var url = EasypayRequest.GetCheckoutPageUrl(_config, paymentRequest);

            Assert.AreEqual(url.ToString(), "http://easypay-test.swisscom.ch/test-service/authorize.jsf?signature=TCVlgDU0eX%2Bld3bNOQUrvnxLeEk%3D&checkoutRequestItem=eyJ0aXRsZSI6bnVsbCwiZGVzY3JpcHRpb24iOm51bGwsImR1cmF0aW9uIjowLCJkdXJhdGlvblVuaXQiOm51bGwsInByb21vdGlvbkFtb3VudCI6bnVsbCwibWVyY2hhbnRJZCI6bnVsbCwiY2FuY2VsVXJsIjpudWxsLCJlcnJvclVybCI6bnVsbCwic3VjY2Vzc1VybCI6bnVsbCwiY3BTZXJ2aWNlSWQiOm51bGwsImNwU3Vic2NyaXB0aW9uSWQiOm51bGwsImNwVXNlcklkIjpudWxsLCJpbWFnZVVybCI6bnVsbCwiYW1vdW50IjoiNS41MCIsInBheW1lbnRJbmZvIjoiVGVzdCIsInJvYW1pbmciOmZhbHNlLCJhZHVsdENvbnRlbnQiOmZhbHNlLCJ1c2VyQWdlbnRPcmlnaW4iOm51bGwsInVzZXJTb3VyY2VJUCI6bnVsbCwiY29udGVudFR5cGUiOm51bGwsInN0b3JlU291cmNlIjpudWxsLCJvcGVyYXRpb24iOm51bGwsIm9yZGVySWQiOm51bGx9");
        }
        // GET: Easypay
        public async Task <ActionResult> Status(string paymentId, string reqId)
        {
            var easypayConfig = GetEasypayConfig();

            easypayConfig.Basepath = "/ce-rest-service";

            var message = await EasypayRequest.GetPaymentStatus(paymentId, easypayConfig, reqId);

            var msg = new Response {
                Title = "STATUS: " + message.Status, Message = "Msisdn: " + message.FormattedMsisdn + ", OrderID: " + message.OrderID + ", Payment Info: " + message.PaymentInfo + ", CHF " + message.Amount, PaymentId = paymentId, ReqId = reqId
            };

            return(View("ResponsePage", msg));
        }
        // GET: Easypay/Callback?paymentId=xyz&purchase=success
        public async Task <ActionResult> Callback(string paymentId, string purchase)
        {
            var msg = new Response {
                Title = "Technical Problem", Message = "", PaymentId = paymentId
            };

            if (purchase == "success")
            {
                var reqId = msg.ReqId = Guid.NewGuid().ToString();

                var easypayConfig = GetEasypayConfig();
                easypayConfig.Basepath = "/ce-rest-service";

                try
                {
                    var message = await EasypayRequest.CommitPaymentRequest(paymentId, easypayConfig, reqId);

                    if (message.Success)
                    {
                        msg.Title = "Success";
                    }
                    else
                    {
                        msg.Message = message.Messages.Select(x => string.Join(", ", x.Code, x.Field, x.RequestId)).FirstOrDefault();
                    }
                }
                catch (Exception ex)
                {
                    msg.Message = ex.Message;
                }
            }
            else
            {
                msg.Title = "Purchase terminated with state: '" + purchase + "'";
            }

            return(View("ResponsePage", msg));
        }
        private void CheckoutView_Navigated(object sender, NavigationEventArgs e)
        {
            if (checkoutView.Source != null && checkoutView.Source.AbsoluteUri.StartsWith(BaseReturnUrl))
            {
                var parameters = QueryParse(checkoutView.Source.Query);
                var paymentId  = parameters["paymentId"];
                var purchase   = parameters["purchase"];

                if (purchase == "success")
                {
                    var reqId = Guid.NewGuid().ToString();

                    var easypayConfig = GetEasypayConfig();
                    easypayConfig.Basepath = "/ce-rest-service";

                    EasypayRequest.CommitPaymentRequest(paymentId, easypayConfig, reqId).ContinueWith((message) =>
                    {
                        if (message.Result.Success)
                        {
                            MessageBox.Show("Success");
                        }
                        else
                        {
                            MessageBox.Show(message.Result.Messages.Select(x => string.Join(", ", x.Code, x.Field, x.RequestId)).FirstOrDefault());
                        }
                    });
                }
                else if (purchase == "cancel")
                {
                    MessageBox.Show("User cancelled purchase");
                }
                else
                {
                    MessageBox.Show("Error in purchase");
                }
            }
        }