public async Task <ActionResult> PaymentCallBack()
        {
            var tranxRef = HttpContext.Request.QueryString["reference"];

            if (!string.IsNullOrWhiteSpace(tranxRef))
            {
                var paystackSec_Key = ConfigurationManager.AppSettings["PayStackKey"].ToString();
                var payStackAPI     = new PaystackTransaction(paystackSec_Key);
                var response        = await payStackAPI.VerifyTransaction(tranxRef);

                if (response.status)
                {
                    var subscriberInfo        = repo.GetSubscription(tranxRef);
                    var planId                = subscriberInfo.PlanId;
                    var subscriptionStartDate = DateTime.Now.AddMonths(1);
                    var payStckSubscription   = new Paystack.Net.SDK.Subscription.PaystackSubscription(paystackSec_Key);
                    var subscriptionResponse  = await payStckSubscription.CreateSubscription(response.data.customer.email, planId,
                                                                                             response.data.authorization.authorization_code, subscriptionStartDate.ToString("s"));

                    var customer = repo.GetCustomerByEmail(response.data.customer.email);
                    if (subscriptionResponse.status)
                    {
                        var data = subscriptionResponse.data;

                        repo.CreateSubscriberAccount(response.data.customer.email, "password", planId, data.subscription_code, data.email_token, subscriptionStartDate);

                        repo.UpdateSubscription(tranxRef);
                    }


                    return(RedirectToAction("Success"));
                }
                else
                {
                    return(RedirectToAction("error"));
                }
            }

            return(RedirectToAction("error"));
        }