예제 #1
0
        public ActionResult CheckOut(CheckOutToIPayViewModel model)
        {
            model.MerchantCode = merchantCode;
            model.PaymentId = "";
            model.Currency = currency;
            model.Remark = "";
            model.Lang = "";
            model.Signature = GenerateSignature(model.RefNo, model.Amount);
            model.ResponseURL = baseUrl + "/Order/Payment";
            model.BackendURL = baseUrl + "/Order/PaymentBackend";

            return View(model);
        }
예제 #2
0
        public ActionResult CheckOutPayment(NewPaymentViewModel formData)
        {
            var token = Request.Cookies["token"].Value;

            var orderId = formData.OrderId;
            var totalAmount = 0.0;
            var email = "";

            if (string.IsNullOrWhiteSpace(orderId))
            {
                try
                {
                    var profileRequest = WebRequest.Create(profileUrl);
                    profileRequest.Headers.Add("Authorization", "Bearer " + token);
                    profileRequest.Method = "get";
                    profileRequest.ContentLength = 0;

                    var profileResponse = profileRequest.GetResponse();
                    var profileWebResponse = (HttpWebResponse)profileResponse;

                    using (var reader = new StreamReader(profileWebResponse.GetResponseStream()))
                    {
                        var json = reader.ReadToEnd();
                        var profile = JsonConvert.DeserializeObject<UserInfoViewModel>(json);

                        email = profile.Email;
                    }

                    var orderRequest = WebRequest.Create(newOrderUrl);
                    orderRequest.Headers.Add("Authorization", "Bearer " + token);
                    orderRequest.Method = "post";
                    orderRequest.ContentLength = 0;

                    var orderResponse = orderRequest.GetResponse();
                    var newOrderResponse = (HttpWebResponse)orderResponse;

                    if (newOrderResponse.StatusCode == HttpStatusCode.Created)
                    {
                        using (var reader = new StreamReader(newOrderResponse.GetResponseStream()))
                        {
                            var json = reader.ReadToEnd();
                            var order = JsonConvert.DeserializeObject<OrderViewModel>(json);
                            orderId = order.Id;
                            //totalAmount = order.TotalSpecialPrice;
                            totalAmount = 0.50;
                        }
                    }
                }
                catch (Exception ex)
                {
                    ViewBag.NoBillingAddress = true;
                    return View("CheckOutPayment");
                }
            }

            var productDescription = "Order " + orderId;
            var username = email;

            var phoneNumber = "0162223322";
            //var signature = GenerateSignature("1", totalAmount);

            //var request = (HttpWebRequest)WebRequest.Create(paymentUrl);

            //var postData = "MerchantCode=" + merchantCode;
            //postData += "&PaymentId=";
            //postData += "&RefNo=1";
            //postData += "&Amount=" + totalAmount.ToString("0.00");
            //postData += "&Currency=" + currency;
            //postData += "&ProdDesc=" + productDescription;
            //postData += "&UserName="******"&UserEmail=" + email;
            //postData += "&UserContact=" + phoneNumber;
            //postData += "&Remark=";
            //postData += "&Lang=";
            //postData += "&Signature=" + signature;
            //postData += "&ResponseURL=" + baseUrl + Url.Action("Payment");
            //postData += "&BackendURL=" + baseUrl + Url.Action("Payment");

            //var data = Encoding.ASCII.GetBytes(postData);

            //request.Method = "POST";
            //request.ContentType = "application/x-www-form-urlencoded";
            //request.ContentLength = data.Length;
            //request.Referer = "http://dealswhat.my/order/checkout";

            //using (var stream = request.GetRequestStream())
            //{
            //    stream.Write(data, 0, data.Length);
            //}

            //var response = request.GetResponse();

            //var responseStream = response.GetResponseStream();

            var IpayViewModel = new CheckOutToIPayViewModel
            {
                RefNo = orderId,
                Amount = totalAmount.ToString("0.00"),
                ProdDesc = productDescription,
                UserName = username,
                UserContact = phoneNumber,
                UserEmail = username
            };

            return RedirectToAction("CheckOut", IpayViewModel);

            //return File(responseStream, response.ContentType);
        }