Esempio n. 1
0
        public void PayPointPayPal()
        {
            var             papi    = new PayPointApi();
            PayPointAccount account = new PayPointAccount();

            papi.PayPointPayPal(account, "www.google.com", "www.google.com", "www.google.com", 5.0M, "GBP", true);
        }
Esempio n. 2
0
        public void PayPointPayPal(PayPointAccount account, string notificationUrl, string returnUrl, string cancelUrl, decimal amount, string currency = "GBP", bool isTest = false)
        {
            try {
                string transactionId = "TRAN" + Guid.NewGuid();
                string options       = string.Format("notificationurl={0},returnurl={1},cancelurl={2}", notificationUrl, returnUrl, cancelUrl);
                if (isTest)
                {
                    options += ",test_status=true";
                }
                this._service.Url = account.ServiceUrl;

                var str = this._service.
                          performTransactionViaAlternatePaymentMethod(account.Mid, account.VpnPassword, "PayPal",
                                                                      "ExpressCheckout", "Initialise", "Transaction",
                                                                      transactionId,
                                                                      amount.ToString(CultureInfo.InvariantCulture),
                                                                      currency, options);
                Log.Debug(str);
                var ret = new PayPointReturnData(str);

                if (!ret.HasError)
                {
                }
            } catch (Exception ex) {
                Log.Error(ex);
            }
        }
Esempio n. 3
0
		public PayPointFacade(DateTime? firstOpenLoanDate = null, string origin = "ezbob") {
			var payPointAccountRepository = ObjectFactory.GetInstance<PayPointAccountRepository>();
			PayPointAccount = payPointAccountRepository.GetAccount(firstOpenLoanDate);

			this.remotePassword = PayPointAccount.RemotePassword;
			this.mid = PayPointAccount.Mid;
			this.templateUrl = string.Format(PayPointAccount.TemplateUrl, origin);
			this.paypointOptions = PayPointAccount.Options;
		} // constructor
Esempio n. 4
0
        public void adds_new_test_credit_card_after_callback()
        {
            var customer        = new EZBob.DatabaseLib.Model.Database.Customer();
            var paypointAccount = new PayPointAccount();
            var card            = customer.TryAddPayPointCard("0f22b1c-e8ec-4299-83c2-ed9f9443abf2", null, null, null, paypointAccount);

            Assert.That(customer.PayPointCards.Count, Is.EqualTo(1));
            Assert.That(card.ExpireDate.HasValue, Is.False);
            Assert.That(card.CardNo, Is.Null);
            Assert.That(card.TransactionId, Is.EqualTo("0f22b1c-e8ec-4299-83c2-ed9f9443abf2"));
        }
Esempio n. 5
0
        public void Test1()
        {
            PayPointApi     papi    = new PayPointApi();
            PayPointAccount account = new PayPointAccount();

            papi.RefundCard(account, "Mr Cardholder", "4444333322221111", 50.99M, new DateTime(2015, 1, 1), "1", new DateTime(2009, 1, 1), "product=ezbob", "123", true);

            string repo = papi.GetReport(account, "CSV", "Date", DateTime.Now.ToString("yyyyMMdd"), "GBP");

            /*SECVPNService service = new SECVPNService();
             * service.
             *
             * string r = service.validateCardFull("secpay", "secpay", "TRAN00001_SC", "127.0.0.1", "Mr Cardholder",
             *                                               "4444333322221111", "50.99", "0115", "1", "0109",
             *                                               "prod=funny_book,item_amount=25.00x1;prod=sad_book,item_amount=12.50x2", "", "",
             *                                               "test_status=true,dups=false,card_type=Visa,cv2=123");
             * string res = service.refundCardFull("secpay", "secpay", "TRAN00001_SC", "50.99", "secpay", "TRAN00001_SC_refund");
             * var report = service.getReport("secpay", "secpay", "secpay", "CSV", "Date", "201204", "GBP", "", false, false);*/
        }
Esempio n. 6
0
        public void tes_card_does_not_override()
        {
            var customer        = new EZBob.DatabaseLib.Model.Database.Customer();
            var paypointAccount = new PayPointAccount();
            var payPointCard    = new PayPointCard()
            {
                Customer        = customer,
                DateAdded       = new DateTime(2012, 10, 10),
                Id              = 1,
                TransactionId   = "0f22b1c-e8ec-4299-83c2-ed9f9443abf3",
                PayPointAccount = paypointAccount
            };

            customer.PayPointCards.Add(payPointCard);

            var card = customer.TryAddPayPointCard("0f22b1c-e8ec-4299-83c2-ed9f9443abf2", null, null, null, paypointAccount);

            Assert.That(customer.PayPointCards.Count, Is.EqualTo(2));
        }
Esempio n. 7
0
        //-----------------------------------------------------------------------------------
        public PayPointReturnData RefundCard(PayPointAccount account, string cardHolder, string cardNumber, decimal amount, DateTime expiryDate, string issueNumber, DateTime startDate, string order, string cv2, bool isTest)
        {
            Log.InfoFormat("RefundCard: cardHolder={0}, cardNumber={1}, amount = {2}, expiryDate = {3}, issueNumber={4}, startDate={5}, order={6}, cv2={7}, isTest = {8}", cardHolder, cardNumber, amount, expiryDate, issueNumber, startDate, order, cv2, isTest);
            this._service.Url = account.ServiceUrl;
            try {
                string transactionId    = "TRAN" + Guid.NewGuid();
                string transactionIdNew = transactionId + "_refund";
                string options          = String.Format("dups=false,card_type=Visa,cv2={0}", cv2);
                if (isTest)
                {
                    options += ",test_status=true";
                }
                string startDateStr  = startDate.ToString("MMyy");
                string expiryDateStr = expiryDate.ToString("MMyy");

                var str = this._service.validateCardFull(account.Mid, account.VpnPassword, transactionId,
                                                         "127.0.0.1", cardHolder, cardNumber,
                                                         amount.ToString(CultureInfo.InvariantCulture),
                                                         expiryDateStr, issueNumber, startDateStr, order,
                                                         String.Empty, String.Empty, options);
                Log.Debug("validateCardFull result: " + str);
                var ret = new PayPointReturnData(str);

                if (!ret.HasError)
                {
                    str = this._service.refundCardFull(account.Mid, account.VpnPassword, transactionId, amount.ToString(CultureInfo.InvariantCulture), account.RemotePassword, transactionIdNew);
                    ret = new PayPointReturnData(str);
                    Log.Debug("refundCardFull result: " + str);
                }
                else
                {
                    Log.InfoFormat("RefundCard completed successfully");
                }
                return(ret);
            } catch (Exception ex) {
                Log.Error(ex);
                return(new PayPointReturnData {
                    Error = ex.Message
                });
            }
        }
Esempio n. 8
0
        public void if_new_card_expire_date_and_cardno_equal_to_existing_overwrite_it()
        {
            var customer        = new EZBob.DatabaseLib.Model.Database.Customer();
            var paypointAccount = new PayPointAccount();
            var payPointCard    = new PayPointCard()
            {
                CardNo          = "1234",
                Customer        = customer,
                DateAdded       = new DateTime(2012, 10, 10),
                ExpireDate      = new DateTime(2014, 10, 1),
                Id              = 1,
                TransactionId   = "0f22b1c-e8ec-4299-83c2-ed9f9443abf3",
                PayPointAccount = paypointAccount
            };

            customer.PayPointCards.Add(payPointCard);

            var card = customer.TryAddPayPointCard("0f22b1c-e8ec-4299-83c2-ed9f9443abf2", "1234", "1014", null, paypointAccount);

            Assert.That(customer.PayPointCards.Count, Is.EqualTo(1));
            Assert.That(customer.PayPointCards.First().TransactionId, Is.EqualTo("0f22b1c-e8ec-4299-83c2-ed9f9443abf2"));
        }
Esempio n. 9
0
        //-----------------------------------------------------------------------------------
        public string GetReport(PayPointAccount account, string reportType, string filterType, string filter, string currency)
        {
            _service.Url = account.ServiceUrl;
            Log.InfoFormat("GetReport: reportType={0}, filterType={1}, filter = {2}, currency = {3}", reportType, filterType, filter, currency);
            try {
                var report = _service.getReport(account.Mid, account.VpnPassword, account.RemotePassword, reportType, filterType, filter, currency, String.Empty, false, false);

                if (report.Length > 1000)
                {
                    Log.Debug("GetReport result (first 1000 symbols): " + report.Substring(0, 1000));
                }
                else
                {
                    Log.Debug("GetReport result: " + report);
                }
                Log.InfoFormat("GetReport completed successfully");

                return(report);
            } catch (Exception ex) {
                Log.Error(ex);
                return(null);
            }
        }
Esempio n. 10
0
        // step 2 - actual paypoint transaction (proceedeed according to "old" amount)
        // no NL here for phase 1
        public PayPointReturnData RepeatTransactionEx(PayPointAccount account, string transactionId, decimal amount)
        {
            var                newTransactionId = transactionId + DateTime.Now.ToString("yyyy-MM-dd_hh:mm:ss");
            string             str;
            PayPointReturnData ret;

            Log.InfoFormat("RepeatTransaction: for transactionId='{0}', amount='{1}', newTransactionId='{2}'", transactionId, amount, newTransactionId);

            if (account.DebugModeEnabled)
            {
                Log.InfoFormat("Paypoint RepeatTransactionEx Debug Mode - not invoking the service call");
                var code     = "A";
                var isValid  = true;
                var message  = "debug mode";
                var respCode = 0;

                if (!account.DebugModeIsValidCard)
                {
                    message = "Card is not valid debug mode";
                    code    = "B";
                    isValid = false;
                }
                else
                {
                    if (account.EnableCardLimit && amount > account.CardLimitAmount)
                    {
                        message = "Amount more than card amount debug mode";
                        code    = "P:A";
                        isValid = false;
                    }
                }

                Random r    = new Random();
                var    rand = r.Next(10);
                if (account.DebugModeErrorCodeNEnabled && rand > 6)
                {
                    isValid  = false;
                    code     = "N";
                    message  = "INSUFF FUNDS";
                    respCode = 5;
                }

                str = string.Format("?valid={0}&trans_id={1}&code={2}&auth_code=9999&message={3}&resp_code={4}", isValid, transactionId, code, message, respCode);
                ret = new PayPointReturnData(str);
            }
            else
            {
                str = _service.repeatCardFullAddr(account.Mid, account.VpnPassword, transactionId,
                                                  amount.ToString(CultureInfo.InvariantCulture), account.RemotePassword,
                                                  newTransactionId, null, null, null, null, "repeat=true");

                // input for step 3 (NL)
                ret = new PayPointReturnData(str);
            }

            if (ret.HasError)
            {
                if (ret.Code == "N")
                {
                    Log.WarnFormat("RepeatTransaction error: {0} error {1} message {2} respCode {3}", str, ret.Error, ret.Message, (ResponseCode)ret.RespCode);
                }
                else
                {
                    Log.ErrorFormat("RepeatTransaction error: {0} error {1} message {2} respCode {3}", str, ret.Error, ret.Message, (ResponseCode)ret.RespCode);
                }

                throw new PayPointException(str, ret);
            }

            Log.DebugFormat("RepeatTransaction successful: " + str);

            return(ret);
        }
Esempio n. 11
0
        }         // ValidateOfferDate

        /// <summary>
        /// Add new paypoint card from paypoint callback.
        /// </summary>
        /// <param name="transId">Paypoint transaction id. null for test card</param>
        /// <param name="cardNo">Last digits of credit card. null for test card</param>
        /// <param name="expiry">Format: MMYY</param>
        /// <returns></returns>
        public virtual PayPointCard TryAddPayPointCard(string transId, string cardNo, string expiry, string cardHolder, PayPointAccount account)
        {
            var card = new PayPointCard {
                Customer         = this,
                DateAdded        = DateTime.UtcNow,
                CardNo           = cardNo,
                TransactionId    = transId,
                ExpireDateString = expiry,
                CardHolder       = cardHolder,
                PayPointAccount  = account,
                IsDefaultCard    = true
            };

            if (!string.IsNullOrEmpty(expiry) && expiry.Length == 4)
            {
                DateTime dt;

                if (DateTime.TryParseExact(expiry, "MMyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out dt))
                {
                    card.ExpireDate = dt;
                }
            }             // if

            //if (!string.IsNullOrEmpty(card.CardNo) && card.ExpireDate.HasValue) {
            //	var existing = PayPointCards
            //		.Where(c => c.ExpireDate != null)
            //		.Where(c => c.ExpireDate.Value.Year == card.ExpireDate.Value.Year)
            //		.Where(c => c.ExpireDate.Value.Month == card.ExpireDate.Value.Month)
            //		.FirstOrDefault(c => c.CardNo == card.CardNo);

            //	if (existing != null) {
            //		existing.TransactionId = card.TransactionId;
            //		existing.DateAdded = card.DateAdded;
            //		return existing;
            //	} // if
            //} // if
            if (PayPointCards.Any())
            {
                foreach (var payPointCard in PayPointCards)
                {
                    payPointCard.IsDefaultCard = false;
                }
            }

            PayPointCards.Add(card);

            return(card);
        }         // TryAddPayPointCard
Esempio n. 12
0
        private bool AddPayPointCardToCustomer(string transactionid, string cardno, EZBob.DatabaseLib.Model.Database.Customer customer, string expiry, decimal?amount, PayPointAccount account)
        {
            bool paymentAdded = false;

            customer.TryAddPayPointCard(transactionid, cardno, expiry, customer.PersonalInfo.Fullname, account);

            bool hasOpenLoans = customer.Loans.Any(x => x.Status != LoanStatus.PaidOff);

            if (amount > 0 && hasOpenLoans)
            {
                Loan loan = customer.Loans.First(x => x.Status != LoanStatus.PaidOff);

                var nlPayment = new NL_Payments()
                {
                    Amount          = amount.Value,
                    CreatedByUserID = this.context.UserId,
                    //CreationTime = DateTime.UtcNow,
                    //	LoanID = nlLoanId,
                    //PaymentTime = DateTime.UtcNow,
                    Notes = "Add paypoint card",
                    //PaymentStatusID = (int)NLPaymentStatuses.Active,
                    PaymentMethodID   = (int)NLLoanTransactionMethods.SystemRepay,
                    PaymentSystemType = NLPaymentSystemTypes.Paypoint
                };

                var f = new LoanPaymentFacade();
                f.PayLoan(loan, transactionid, amount.Value, Request.UserHostAddress, DateTime.UtcNow, "system-repay", false, null, nlPayment);

                paymentAdded = true;
            }

            if (amount > 0 && !hasOpenLoans)
            {
                this.serviceClient.Instance.PayPointAddedWithoutOpenLoan(customer.Id, this.context.UserId, amount.Value, transactionid);
            }

            this.serviceClient.Instance.PayPointAddedByUnderwriter(customer.Id, cardno, this.context.User.FullName, this.context.User.Id);

            return(paymentAdded);
        }