Esempio n. 1
0
        public async Task <IActionResult> TransactionInit([FromBody] CartModel model)
        {
            var raveScretKey = RaveConstant.SANDBOX_KEY;
            var raveAPI      = new RavePayment(raveScretKey);

            var callback_url = "http://localhost:51220/payment/verify";
            var trx_ref      = DateTime.Now.Ticks.ToString();
            var orderTotal   = Convert.ToDecimal(model.amount);
            var customerId   = await _service.AddCustomer(model);

            var orderRef = await _service.AddOrder(trx_ref, customerId, orderTotal);

            var initResponse = await raveAPI.InitializeTransaction(orderRef, model.amount, callback_url,
                                                                   model.email, model.phone, model.customerName);

            if (!initResponse.status.Equals("success"))
            {
                return(Json(new { status = "error" }));
            }

            Response.Headers.Add("Access-Control-Allow-Origin", "*");
            Response.Headers.Append("Access-Control-Allow-Origin", "*");

            return(Json(initResponse));
        }
Esempio n. 2
0
        public async Task <IActionResult> verify()
        {
            var tranxRef      = Request.Query["tx_ref"];
            var transactionId = Request.Query["transaction_id"];
            var transStatus   = Request.Query["status"];

            if (!transStatus.Equals("successful") || string.IsNullOrWhiteSpace(transactionId))
            {
                return(RedirectToAction("FailedPayment", "Error", new { area = "" }));
            }

            var transaction_id = int.Parse(transactionId);

            var raveScretKey = RaveConstant.SANDBOX_KEY;
            var raveAPI      = new RavePayment(raveScretKey);

            var response = await raveAPI.VerifyTransaction(transaction_id);

            if (response.status == "success")
            {
                if (response.data.status == "successful")
                {
                    var update = await _service.UpdateOrder(tranxRef, true);

                    if (update)
                    {
                        return(RedirectToAction("PaymentSuccess", "Home", new { area = "" }));
                    }
                }
            }

            return(RedirectToAction("FailedPayment", "Error", new { area = "" }));
        }