예제 #1
0
        public PushpayController(IRequestManager requestManager) : base(requestManager)
        {
            PaymentProcessTypes processType = PaymentProcessTypes.OneTimeGiving;

            try
            {
                processType = (PaymentProcessTypes)requestManager.CurrentHttpContext.Session["PaymentProcessType"];
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }


            _pushpay = new PushpayConnection(
                CurrentDatabase.GetSetting("PushPayAccessToken", ""),
                CurrentDatabase.GetSetting("PushPayRefreshToken", ""),
                CurrentDatabase,
                Configuration.Current.PushpayAPIBaseUrl,
                Configuration.Current.PushpayClientID,
                Configuration.Current.PushpayClientSecret,
                Configuration.Current.OAuth2TokenEndpoint,
                Configuration.Current.TouchpointAuthServer,
                Configuration.Current.OAuth2AuthorizeEndpoint);
            _pushpayPayment = new PushpayPayment(_pushpay, CurrentDatabase, processType);
            _resolver       = new PushpayResolver(_pushpay, CurrentDatabase);

            _merchantHandle = _pushpayPayment._merchantHandle;
            _givingLink     = $"{Configuration.Current.PushpayGivingLinkBase}/{_merchantHandle}";
        }
예제 #2
0
        public PushpayController(IRequestManager requestManager) : base(requestManager)
        {
            PaymentProcessTypes processType = PaymentProcessTypes.OneTimeGiving;

            try
            {
                processType = (PaymentProcessTypes)int.Parse(requestManager.SessionProvider.Get <string>("PaymentProcessType"));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }


            _pushpay = new PushpayConnection(
                CurrentDatabase.GetSetting("PushPayAccessToken", ""),
                CurrentDatabase.GetSetting("PushPayRefreshToken", ""),
                CurrentDatabase,
                Configuration.Current.PushpayAPIBaseUrl,
                Configuration.Current.PushpayClientID,
                Configuration.Current.PushpayClientSecret,
                Configuration.Current.OAuth2TokenEndpoint,
                Configuration.Current.TouchpointAuthServer,
                Configuration.Current.OAuth2AuthorizeEndpoint);

            _pushpayPayment        = new PushpayPayment(_pushpay, CurrentDatabase, processType);
            _resolver              = new PushpayResolver(_pushpay, CurrentDatabase);
            _defaultMerchantHandle = _pushpayPayment._defaultMerchantHandle;
            _givingLink            = Configuration.Current.PushpayGivingLinkBase;
            _state = CurrentDatabase.Host;

            isTesting = MultipleGatewayUtils.Setting(CurrentDatabase, "GatewayTesting", (int)processType);
            if (isTesting)
            {
                _ru = "touchpointest";
            }
            else
            {
                _ru = Configuration.Current.PushpayRU;
            }
        }
예제 #3
0
        public async Task <ActionResult> RecurringManagment(int PeopleId)
        {
            var oid = (from o in CurrentDatabase.Organizations
                       where o.RegistrationTypeId == RegistrationTypeCode.ManageGiving
                       select o.OrganizationId).FirstOrDefault();

            if (oid <= 0)
            {
                return(View("OnePageGiving/NotConfigured"));
            }

            ViewBag.PeopleId = PeopleId;
            ViewBag.OrgId    = oid;

            string payerKey = PushpayResolver.ResolvePayerKey(CurrentDatabase, PeopleId);
            IEnumerable <RecurringPayment> rpList = await _pushpayPayment.GetRecurringPaymentsForAPayer(payerKey);

            if (rpList == null || rpList.Count() == 0)
            {
                string mobile = CurrentDatabase.People.SingleOrDefault(p => p.PeopleId == PeopleId).CellPhone;
                return(NewRecurringGiving(PeopleId, oid));
            }
            List <RecurringManagment> model = new List <RecurringManagment>();

            foreach (var item in rpList)
            {
                RecurringManagment mg = new RecurringManagment()
                {
                    NextPayment = item.Schedule.NextPaymentDate,
                    Amount      = item.Amount.Amount,
                    Fund        = item.Fund.Name,
                    Frequency   = item.Schedule.Frequency,
                    LinkToEdit  = item.Links["donorviewrecurringpayment"].Href
                };
                model.Add(mg);
            }
            return(View(model));
        }