コード例 #1
0
ファイル: HomeController.cs プロジェクト: Numx6/LindaEShop1
        public IActionResult FinalyOrder(int orderId, int addressId)        //---id = orderId
        {
            _orderService.AddAddressToOrder(orderId, addressId);
            Order  order  = _orderService.GetOrderByOrderId(orderId);
            string roleId = User.FindFirst(ClaimTypes.Role)?.Value;

            if (order.OrderDetails == null)
            {
                return(Redirect("/"));
            }

            #region admin pyment

            if (roleId == "1")
            {
                return(RedirectToAction("OnlinePayment", "Home", new { area = "", id = orderId }));
            }

            #endregion

            #region onlin payment

            var payment = new Zarinpal.Payment("054939ee-3bc1-11ea-9822-000c295eb8fc", order.OrderSum + 15000);             //----15.000---هزینه پست
            var res     = payment.PaymentRequest("فروشگاه اینترنتی لیندا", "http://lindaunderwear.ir/OnlinePayment/" + orderId, "", "");

            if (res.Result.Status == 100)
            {
                return(Redirect("https://zarinpal.com/pg/StartPay/" + res.Result.Authority));
            }

            return(NotFound());

            #endregion
        }
        public async Task <IActionResult> PaymentInitialize()
        {
            var currentUser = await userManager.FindByNameAsync(User.Identity.Name);

            var    invoiceUser    = dbInvoice.GetAll().Where(e => e.CustomerId == currentUser.Id && e.IsPaid == false).FirstOrDefault();
            var    totalPrice     = TotalInvoicePrice(invoiceUser.Id);
            string YourMerchantId = "6e4d95e0-f254-11e9-897b-000c295eb8fc";
            var    payment        = new Zarinpal.Payment(YourMerchantId, totalPrice);
            //SandBox==Test ZarinPal
            //  var payment = new ZarinpalSandbox.Payment(totalPrice);
            string description = "پرداخت سبد خرید";
            var    url         = HttpContext.Request.Host.Host;
            // string backUrl = "https://*****:*****@pdoorsco.ir";
            string CustomerPhoneNumber = currentUser.PhoneNumber ?? "09171112233";
            var    result = await payment.PaymentRequest(description, backUrl, CustomerEmail, CustomerPhoneNumber);

            if (result.Status == 100)
            {
                invoiceUser.TrackingCode = result.Authority;
                dbInvoice.Update(invoiceUser);
                return(Redirect("https://zarinpal.com/pg/StartPay/" + result.Authority));
                // return Redirect("https://sandbox.zarinpal.com/pg/StartPay/" + result.Authority);
            }
            return(Json("No"));
        }
コード例 #3
0
        public async Task <IActionResult> Pay([FromRoute] PayModel model, [FromForm] PersonalPortalModel bodyModel)
        {
            string mechantId      = "dd5c225c-bbf5-11e9-9621-000c295eb8fc";
            var    personalPortal = await _personalPortalService.GetPersonalPortal(model);

            bodyModel.Price       = !string.IsNullOrEmpty(personalPortal.Price) ? personalPortal.Price : bodyModel.Price;
            bodyModel.Description = !string.IsNullOrEmpty(personalPortal.Description) ? personalPortal.Description : bodyModel.Description;
            var payment = new Zarinpal.Payment(mechantId, int.Parse(bodyModel.Price));

            var retUrl = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, $"PersonalPortal/PayReturn");

            var requestResult = await payment.PaymentRequest(bodyModel.Description, retUrl);

            if (requestResult.Status == 100)
            {
                await _paymentService.CreateRequest(new CreateRequest
                {
                    Status           = requestResult.Status,
                    Authority        = requestResult.Authority,
                    Link             = requestResult.Link,
                    PersonalPortalId = personalPortal.ID,
                    Description      = bodyModel.Description,
                    Price            = bodyModel.Price
                });

                return(Redirect(requestResult.Link));
            }
            return(View(bodyModel));
        }
コード例 #4
0
        public async Task <IActionResult> PayGroupSubmit(GroupPayModel model)
        {
            model.ID   = User.Claims.GetUserId();
            model.Hash = User.Claims.GetUserHash();
            string mechantId = "dd5c225c-bbf5-11e9-9621-000c295eb8fc";
            var    portals   = await _destinationPortalService.GetUserGroupPortals(model);

            var price   = model.Price.HasValue ? model.Price.Value : portals.Sum(x => x.Price);
            var title   = portals.FirstOrDefault().Group;
            var payment = new Zarinpal.Payment(mechantId, (int)price);

            var retUrl = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, $"DestinationPortals/PayReturn");

            var requestResult = await payment.PaymentRequest(title, retUrl);

            if (requestResult.Status == 100)
            {
                await _paymentService.CreateRequest(new CreateRequest
                {
                    Status      = requestResult.Status,
                    Authority   = requestResult.Authority,
                    Link        = requestResult.Link,
                    GroupId     = model.GroupId,
                    Description = title,
                    Price       = price.ToString()
                });

                return(Redirect(requestResult.Link));
            }
            return(View("PayGroup", model));
        }
コード例 #5
0
        public async Task <IActionResult> Pay([FromRoute] GetDestinationPortalModel model, [FromForm] DetinationPortalPayModel bodyModel)
        {
            model.ID   = User.Claims.GetUserId();
            model.Hash = User.Claims.GetUserHash();
            string mechantId      = "dd5c225c-bbf5-11e9-9621-000c295eb8fc";
            var    personalPortal = await _destinationPortalService.GetUserRegistredPortal(model);

            bodyModel.Price = personalPortal.Price > 0 ? personalPortal.Price.ToString() : bodyModel.Price;
            var payment = new Zarinpal.Payment(mechantId, int.Parse(bodyModel.Price));

            var retUrl = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, $"DestinationPortals/PayReturn");

            var requestResult = await payment.PaymentRequest(personalPortal.Title, retUrl);

            if (requestResult.Status == 100)
            {
                await _paymentService.CreateRequest(new CreateRequest
                {
                    Status              = requestResult.Status,
                    Authority           = requestResult.Authority,
                    Link                = requestResult.Link,
                    DestinationPortalId = personalPortal.Id,
                    Description         = personalPortal.Title,
                    Price               = bodyModel.Price
                });

                return(Redirect(requestResult.Link));
            }
            return(View(bodyModel));
        }
        public async Task <IActionResult> PaymentInitializeTest()
        {
            string description = "پرداخت سبد خرید";
            var    currentUser = await userManager.FindByNameAsync(User.Identity.Name);

            var    invoiceUser         = dbInvoice.GetAll().Where(e => e.CustomerId == currentUser.Id && e.IsPaid == false).FirstOrDefault();
            var    totalPrice          = TotalInvoicePrice(invoiceUser.Id);
            string CustomerEmail       = currentUser.Email ?? "*****@*****.**";
            string CustomerPhoneNumber = currentUser.PhoneNumber ?? "09171112233";
            string backUrl             = $"http://persiandoorsco.ir/Invoice/PaymentVerify?Price={totalPrice}";
            string YourMerchantId      = "6e4d95e0-f254-11e9-897b-000c295eb8fc";
            var    payment             = new Zarinpal.Payment(YourMerchantId, totalPrice);
            var    result = await payment.PaymentRequest(description, backUrl, CustomerEmail, CustomerPhoneNumber);

            return(Json(description + "+++" + backUrl + "+++" + CustomerEmail + "+++" + CustomerPhoneNumber + "+++" + result.Status + "++" + result.Authority));
        }