Пример #1
0
        public void CanSaveCheckPayment()
        {
            IDataRecorderMetaDataFactory metaDataFactory = new DataRecorderMetaDataFactory();
            DataRecorderMetaData         metaData        = metaDataFactory.CreateDataRecorderMetaData(2);

            var check = new Check {
                Amount               = 200,
                Memo                 = "Happy Birthday!",
                CheckDate            = new DateTime(1903, 6, 6),
                AccountNumber        = "testtest",
                BankName             = "Bank of Sans Serif",
                CheckNumber          = "blue",
                DataRecorderMetaData = metaData,
                PayableTo            = "Falcon",
                PaymentId            = PAYMENT_ID_WITH_ONLY_CHECKS,
                RoutingNumber        = "twelve"
            };

            var checkPayment = new CheckPayment {
                PaymentId            = PAYMENT_ID_WITH_ONLY_CHECKS,
                Amount               = check.Amount,
                DataRecorderMetaData = metaData,
                Check = check
            };

            checkPayment = (CheckPayment)_checkPaymentRepository.SavePaymentInstrument(checkPayment);

            Assert.IsNotNull(checkPayment, "Check Payment is null but should not be.");
            Assert.IsNotNull(checkPayment.Check, "Check is null but should not be.");
            Assert.AreNotEqual(0, checkPayment.Check.Id);
        }
Пример #2
0
        /// <summary>
        /// saves check payment details
        /// </summary>
        /// <param name="chkp"> Check Payment Model </param>
        public void PostCheckPayment(CheckPaymentModel chkp)
        {
            using (var _ctx = new ChinmayaEntities())
            {
                var config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap <CheckPaymentModel, CheckPayment>();
                });
                IMapper mapper = config.CreateMapper();

                var chk = new CheckPayment
                {
                    AccountHolderName = chkp.AccountHolderName,
                    AccountTypeId     = chkp.AccountTypeId,
                    BankName          = chkp.BankName,
                    AccountNumber     = chkp.AccountNumber,
                    RoutingNumber     = chkp.RoutingNumber,
                    Amount            = chkp.Amount,
                    StatusId          = 1,
                    CreatedBy         = chkp.CreatedBy,
                    CreatedDate       = DateTime.Now
                };

                _ctx.CheckPayments.Add(chk);
                try
                {
                    _ctx.SaveChanges();
                }
                catch
                {
                    throw;
                }
            }
        }
 public void SetUp()
 {
     _paymentInstrumentValidator = new FakeValidator <PaymentInstrument>();
     _checkValidator             = new FakeValidator <Check>();
     _checkPaymentValidator      = new Validator <CheckPayment>(new CheckPaymentValidationRuleFactory(_checkValidator, _paymentInstrumentValidator));
     _checkPayment = GetValidCheckPayment();
 }
Пример #4
0
        public void SavePaymentSavesPaymentWithOnePaymentInstrument()
        {
            IPaymentController paymentController = IoC.Resolve <PaymentController>();

            var check = new Check
            {
                AccountNumber        = "asdfsadf",
                Amount               = 12.00m,
                BankName             = "Bank Yes",
                CheckDate            = DateTime.Now,
                CheckNumber          = "123",
                Memo                 = "Payment in full",
                PayableTo            = "ABC Company",
                DataRecorderMetaData =
                    new DataRecorderMetaData {
                    DataRecorderCreator = new OrganizationRoleUser(1), DateCreated = DateTime.Now
                }
            };

            var checkPayment = new CheckPayment()
            {
                Amount = check.Amount,
                Check  = check
            };

            var paymentInstruments = new List <PaymentInstrument> {
                checkPayment
            };

            long paymentId = paymentController.SavePayment(paymentInstruments, "should save", 1);

            Assert.Greater(paymentId, 0, "PaymentId must be >= 0");
        }
Пример #5
0
        public void SavingCheckPaymentCallsSaveMethodOfCheckPaymentRepository()
        {
            var checkPayment = new CheckPayment();

            Expect.Call(_keyValueDictionaryFactory.GetDictionary(null, null)).IgnoreArguments().Return(_repositoryDictionary);
            Expect.Call(() => _checkRepository.SavePaymentInstrument(checkPayment)).Return(null);

            _mocks.ReplayAll();
            _repository.SavePaymentInstrument(checkPayment);
            _mocks.VerifyAll();
        }
Пример #6
0
        public async Task Timeout(CheckPayment state, IMessageHandlerContext context)
        {
            //If the timeout is received it means we never received the InvoicePaid message, by definition this invoice is overdue.
            Console.WriteLine($"OverdueInvoicePolicy - Invoice {Data.InvoiceNumber} is overdue, publishing InvoiceOverdue event.");
            await context.Publish(new InvoiceOverdueEvent()
            {
                InvoiceNumber = Data.InvoiceNumber
            });

            MarkAsComplete();
        }
Пример #7
0
        /// <summary>
        /// Implement PayByCheck method
        /// </summary>
        public void PayByCheck()
        {
            decimal       balance     = sale.getBalance();
            decimal       amountEnter = Amount;
            decimal       amount      = (amountEnter > balance ? balance : amountEnter);
            PaymentMethod payment     = new CheckPayment(amount);

            if (amountEnter <= balance)
            {
                sale.processPayment(payment);
                UpdatePaymentMethodView();
            }
            else
            {
                MessageBox.Show("Your check payment cannot be greater than your balance.");
            }
        }
        private void OnButtonCheckOrderClick(object o, EventArgs e)
        {
            if (TextBoxClientOrderNumber.Text.Length != 0 && TextBoxSumPayment.Text.Length != 0)
            {
                CheckPayment?.Invoke();
                return;
            }

            if (TextBoxClientOrderNumber.Text.Length == 0)
            {
                MessageBox.Show("Введите номер заказа клиента и повторите попытку.", "Номер заказа");
                return;
            }

            if (TextBoxSumPayment.Text.Length == 0)
            {
                MessageBox.Show("Введите стоимость заказа и повторите попытку.", "Стоимость ");
            }
        }
Пример #9
0
        /// <summary>
        /// saves check payment details
        /// </summary>
        /// <param name="chkp"> Check Payment Model </param>
        public void PostCheckPayment(CheckPaymentModel chkp)
        {
            using (var _ctx = new ChinmayaEntities())
            {
                var config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap <CheckPaymentModel, CheckPayment>();
                });
                IMapper mapper = config.CreateMapper();

                var chk = new CheckPayment
                {
                    AccountHolderName = chkp.AccountHolderName,
                    AccountTypeId     = chkp.AccountTypeId,
                    BankName          = chkp.BankName,
                    AccountNumber     = chkp.AccountNumber,
                    RoutingNumber     = chkp.RoutingNumber,
                    Amount            = chkp.Amount,
                    StatusId          = 1,
                    CreatedBy         = chkp.CreatedBy,
                    CreatedDate       = DateTime.Now
                };

                _ctx.CheckPayments.Add(chk);
                try
                {
                    _ctx.SaveChanges();
                }
                catch (DbEntityValidationException e)
                {
                    foreach (var even in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                          even.Entry.Entity.GetType().Name, even.Entry.State);
                        foreach (var ve in even.ValidationErrors)
                        {
                            Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                              ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
            }
        }
Пример #10
0
        void Run()
        {
            var hdr = new Header();

            AppendToOutput(hdr.ToFixedTextLine());

            BasePayment pymt = null;
            BaseOrigPartyNameAddress origNameAddr = null;
            BaseRecvPartyNameAddress recvNameAddr = null;

            //var aplist = AP.SqlQueryAp;
            using (var db = new AppDbContext()) {
                foreach (var ap in db.APs.ToArray())
                {
                    switch (ap.PaymentMode)
                    {
                    case PaymentMode.Check:
                        pymt         = new CheckPayment(ap);
                        origNameAddr = new CheckOrigPartyNameAddress(ap);
                        recvNameAddr = new CheckRecvPartyNameAddress(ap);
                        break;

                    case PaymentMode.Eft:
                        pymt         = new EftPayment(ap);
                        origNameAddr = new EftOrigPartyNameAddress(ap);
                        recvNameAddr = new EftRecvPartyNameAddress(ap);
                        break;

                    default:
                        pymt         = new UnknownPayment(ap);
                        origNameAddr = new OtherOrigPartyNameAddress(ap);
                        recvNameAddr = new OtherRecvPartyNameAddress(ap);
                        break;
                    }
                    AppendToOutput(pymt.ToFixedTextLine());
                    AppendToOutput(origNameAddr.ToFixedTextLine());
                    AppendToOutput(recvNameAddr.ToFixedTextLine());
                }
            }
            WriteToOutput(linesOut);
        }
Пример #11
0
        public async Task Timeout(CheckPayment state, IMessageHandlerContext context)
        {
            var invoiceNumber = Data.InvoiceNumber;

            Console.WriteLine($"OverdueInvoicePolicy - ready to check payment for invoice {invoiceNumber}");

            var isInvoicePaid = _invoiceService.IsInvoicePaid(invoiceNumber);

            Console.WriteLine($"OverdueInvoicePolicy - 'isInvoicePaid': {isInvoicePaid}");
            if (!isInvoicePaid)
            {
                Console.WriteLine($"OverdueInvoicePolicy - invoice is overdue, going to publish InvoiceOverdue event.");

                await context.Publish(new InvoiceOverdueEvent()
                {
                    InvoiceNumber = invoiceNumber
                });
            }

            Console.WriteLine($"OverdueInvoicePolicy - completed.");
            MarkAsComplete();
        }
Пример #12
0
    public static string CheckPayment(long customer_id)
    {
        //get
        //{

        List <CheckPayment> checkPayment = new List <CheckPayment>();


        Database = new DatabaseDataContext();
        var data = Database._InvoiceOfficialReceipts.Where(x => x.CustomerID == customer_id);

        foreach (var or in data)
        {
            var check = Database._InvoicePaymentChecks.Where(x => x.OfficialReceiptID == or.ID);

            foreach (var c in check)
            {
                CheckPayment _check = new CheckPayment();

                _check.ID          = c.ID;
                _check.RefNo       = or.RefNo + or.ID.ToString();
                _check.BankName    = c.BankName;
                _check.CheckNo     = c.CheckNo;
                _check.CheckDate   = c.CheckDate.Value;
                _check.CreatedDate = or.CreatedDate.Value;
                _check.ORAmount    = or.TotalAmount.Value;
                _check.CheckAmount = c.Amount.Value;

                checkPayment.Add(_check);
            }
        }



        return(JsonConvert.SerializeObject(checkPayment, Newtonsoft.Json.Formatting.None));
        //}
    }
Пример #13
0
    public static string CheckPayment(long supplier_id)
    {
        //get
        //{

        List <CheckPayment> checkPayment = new List <CheckPayment>();


        Database = new DatabaseDataContext();
        var data = Database._PurchaseVoucherSelect(0, supplier_id);

        foreach (var or in data)
        {
            var check = Database._PurchasedPaymentChecks.Where(x => x.PuchasedVoucherID == or.ID);

            foreach (var c in check)
            {
                CheckPayment _check = new CheckPayment();

                _check.ID          = c.ID;
                _check.RefNo       = or.RefNo;
                _check.BankName    = c.BankName;
                _check.CheckNo     = c.CheckNo;
                _check.CheckDate   = c.CheckDate.Value;
                _check.CreatedDate = or.CreatedDate.Value;
                _check.ORAmount    = or.TotalAmount.Value;
                _check.CheckAmount = c.Amount.Value;

                checkPayment.Add(_check);
            }
        }



        return(JsonConvert.SerializeObject(checkPayment, Newtonsoft.Json.Formatting.None));
        //}
    }
Пример #14
0
        public static void PaymentType(string option)
        {
            switch (option)
            {
            case "1":
                CashPayment.ValidPayment();
                PaymentOption = "Cash";
                break;

            case "2":
                Cardpayment.ValidPayment();
                PaymentOption = "Card";
                break;

            case "3":
                CheckPayment.ValidPayment();
                PaymentOption = "Check";
                break;

            default:
                Console.WriteLine("Invalid entry");
                break;
            }
        }
Пример #15
0
        public JsonResult MakePaymentData(PaymentModel objPaymentModel, PaymentModel ObjData)
        {
            eTracLoginModel ObjLoginModel = null;
            long            Vendor        = 0;
            var             result        = "";
            var             resultPayment = new BillPayment();

            if (Session["eTrac"] != null)
            {
                ObjLoginModel = (eTracLoginModel)(Session["eTrac"]);
            }
            try
            {
                if (objPaymentModel != null && ObjData != null)
                {
                    objPaymentModel.UserId = ObjLoginModel.UserId;

                    string realmId = CallbackController.RealMId.ToString(); // Session["realmId"].ToString();
                    try
                    {
                        if (realmId != null)
                        {
                            string AccessToken = CallbackController.AccessToken.ToString(); //Session["access_token"].ToString();
                            var    principal   = User as ClaimsPrincipal;
                            OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(AccessToken);

                            // Create a ServiceContext with Auth tokens and realmId
                            ServiceContext serviceContext = new ServiceContext(realmId, IntuitServicesType.QBO, oauthValidator);
                            serviceContext.IppConfiguration.MinorVersion.Qbo = "23";
                            DataService commonServiceQBO = new DataService(serviceContext);
                            // Create a QuickBooks QueryService using ServiceContext
                            QueryService <Vendor> querySvc   = new QueryService <Vendor>(serviceContext);
                            List <Vendor>         vendorList = querySvc.ExecuteIdsQuery("SELECT * FROM Vendor MaxResults 1000").ToList();

                            QueryService <Account> querySvcAccount = new QueryService <Account>(serviceContext);
                            List <Account>         accountData     = querySvcAccount.ExecuteIdsQuery("SELECT * FROM Account MaxResults 1000").ToList();

                            var VendorDetails = _IVendorManagement.GetCompanyQuickBookId(Convert.ToInt64(ObjData.VendorId));
                            //var getAccountDetails = _IVendorManagement.GetAccountDetailsByVendorId(Convert.ToInt64(objPaymentModel.OpeartorCAD_Id)); // (Convert.ToInt64(ObjData.VendorId));
                            var getAccountDetails            = _IVendorManagement.GetAccountDetailsByVendorId(Convert.ToInt64(objPaymentModel.CompanyAccountId)); // (Convert.ToInt64(ObjData.VendorId));
                            var getBill                      = _IBillDataManager.GetBillQBKId(Convert.ToInt64(ObjData.BillNo));
                            QueryService <Bill> querySvcBill = new QueryService <Bill>(serviceContext);
                            List <Bill>         billData     = querySvcBill.ExecuteIdsQuery("SELECT * FROM Bill MaxResults 1000").ToList();

                            var bill = billData.Where(x => x.Id == getBill.ToString()).FirstOrDefault();
                            // var vendorData = vendorList.Where(x => x.Id == "64").FirstOrDefault();
                            var payment = new BillPayment();
                            //Vendor Reference
                            var reference         = new ReferenceType();
                            var accountRef        = new AccountBasedExpenseLineDetail();
                            var billPaymentCheck  = new BillPaymentCheck();
                            var billPaymentCredit = new BillPaymentCreditCard();
                            var line     = new Line();
                            var lineList = new List <Line>();

                            if (VendorDetails > 0)
                            {
                                var vendorData = vendorList.Where(x => x.Id == VendorDetails.ToString()).FirstOrDefault();
                                //Vendor Reference
                                payment.VendorRef = new ReferenceType()
                                {
                                    name  = vendorData.DisplayName,
                                    Value = vendorData.Id
                                };
                            }
                            line.LineNum = "1";
                            var any = new IntuitAnyType();
                            if (getAccountDetails != null)
                            {
                                var ayintuit        = new IntuitAnyType();
                                var accountsDetails = accountData.Where(x => x.Id == getAccountDetails.QuickbookAcountId.ToString()).FirstOrDefault();//getAccountDetails.QuickbookAcountId.ToString()
                                if (ObjData.PaymentMode == "Wired")
                                {
                                    payment.PayType = BillPaymentTypeEnum.CreditCard;
                                    var CCD = new CreditCardPayment();
                                    billPaymentCredit.CCAccountRef = new ReferenceType()
                                    {
                                        name  = accountsDetails.Name,
                                        Value = accountsDetails.Id,
                                    };
                                    payment.AnyIntuitObject = billPaymentCredit;
                                }
                                else if (ObjData.PaymentMode == "Card")
                                {
                                    payment.PayType = BillPaymentTypeEnum.CreditCard;
                                    var CCD = new CreditCardPayment();
                                    billPaymentCredit.CCAccountRef = new ReferenceType()
                                    {
                                        name  = accountsDetails.Name,
                                        Value = accountsDetails.Id,
                                    };
                                    payment.AnyIntuitObject = billPaymentCredit;
                                }
                                else if (ObjData.PaymentMode == "Check")
                                {
                                    var checking = new CheckPayment();
                                    payment.PayType = BillPaymentTypeEnum.Check;
                                    billPaymentCheck.BankAccountRef = new ReferenceType()
                                    {
                                        name  = accountsDetails.Name,
                                        Value = accountsDetails.Id
                                    };
                                    billPaymentCheck.PrintStatus = PrintStatusEnum.NeedToPrint;
                                    payment.AnyIntuitObject      = billPaymentCheck;
                                }
                            }
                            payment.APAccountRef = new ReferenceType()
                            {
                                name  = "Accounts Payable (A/P)",
                                Value = "33"
                            };
                            QueryService <Department> querySvcDept = new QueryService <Department>(serviceContext);
                            var LocationName = _IBillDataManager.GetLocationDataByLocId(Convert.ToInt64(ObjData.LocationId));
                            payment.DepartmentRef = new ReferenceType()
                            {
                                name  = LocationName.LocationName,
                                Value = LocationName.QBK_Id.ToString()
                            };

                            line.Amount          = Convert.ToDecimal(ObjData.BillAmount);
                            line.AmountSpecified = true;
                            var linkedlist = new List <LinkedTxn>();
                            var linked     = new LinkedTxn();
                            linked.TxnId   = bill.Id;
                            linked.TxnType = "Bill";

                            linkedlist.Add(linked);
                            line.LinkedTxn  = linkedlist.ToArray();
                            line.DetailType = LineDetailTypeEnum.PaymentLineDetail;
                            lineList.Add(line);
                            payment.Line = lineList.ToArray();
                            //payment.PayType = BillPaymentTypeEnum.CreditCard;
                            payment.PayTypeSpecified  = true;
                            payment.TotalAmt          = Convert.ToDecimal(ObjData.BillAmount);
                            payment.TotalAmtSpecified = true;

                            var metaData = new ModificationMetaData();
                            metaData.CreateTime      = Convert.ToDateTime(ObjData.BillDate);
                            payment.MetaData         = metaData;
                            payment.PayTypeSpecified = true;
                            resultPayment            = commonServiceQBO.Add(payment) as BillPayment;

                            //To close PO after Payment. Update Payment in Quickbook.
                            QueryService <PurchaseOrder> querySvcPO = new QueryService <PurchaseOrder>(serviceContext);
                            List <PurchaseOrder>         POList     = querySvcPO.ExecuteIdsQuery("SELECT * FROM PurchaseOrder MaxResults 1000").ToList();
                            if (ObjData.BillType == "PO")
                            {
                                var getPOQData = _IPaymentManager.GetPODetails(objPaymentModel, ObjData);
                                if (getPOQData.QuickBookPOId > 0)
                                {
                                    var data = POList.Where(x => x.Id == getPOQData.QuickBookPOId.ToString()).FirstOrDefault();
                                    data.POStatus = PurchaseOrderStatusEnum.Closed;
                                    var update = commonServiceQBO.Update(data) as PurchaseOrder;
                                }
                            }
                        }
                        else
                        {
                            ViewBag.Message           = CommonMessage.FailureMessage();
                            result                    = CommonMessage.FailureMessage();
                            ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger;
                            return(Json(result, JsonRequestBehavior.AllowGet));
                        }
                    }
                    catch (Exception ex)
                    {
                        ViewBag.Message           = ex.Message;
                        ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger;
                    }

                    result = _IPaymentManager.MakePayment(objPaymentModel, ObjData);
                    if (result != null)
                    {
                        return(Json(result, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        ViewBag.Message           = CommonMessage.FailureMessage();
                        ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger;
                        return(Json(result, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    ViewBag.Message           = CommonMessage.FailureMessage();
                    ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger;
                }
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
            //return null;
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public async Task <IActionResult> Create([Bind("CheckNo,PaymentAmount,PaymentDate,BillingId,ReceiveReceipt")] CheckPayment checkPayment)
        {
            if (ModelState.IsValid)

            {
                Console.WriteLine("Check Payment" + checkPayment.BillingId + checkPayment.PaymentAmount
                                  );
                _context.Add(checkPayment);
                await _context.SaveChangesAsync();


                //Update Paid Status in invoice

                var billing = await _context.Billing
                              .FirstOrDefaultAsync(m => m.BillingId == checkPayment.BillingId);

                billing.Paid = true;
                await _context.SaveChangesAsync();


                //Send receipt
                if (checkPayment.ReceiveReceipt == true)
                {
                    var get_patient_id    = _context.Billing.Where(c => c.BillingId == checkPayment.BillingId).FirstOrDefault().PatientId;
                    var get_patient_email = _context.Patient.Where(c => c.PatientId == get_patient_id).FirstOrDefault().PatientEmail;
                    var get_patient_name  = _context.Patient.Where(c => c.PatientId == get_patient_id).FirstOrDefault().PatientName;



                    /* SendReceipt receipt = new SendReceipt();
                     *   receipt.Sendemail(get_patient_email, checkPayment.PaymentAmount, checkPayment.BillingId);*/


                    //Send an email
                    //Sending email, make a different class file for this.
                    var          fromAddress = new MailAddress("*****@*****.**", "Healthcare Service");
                    var          toAddress   = new MailAddress(get_patient_email, get_patient_name);
                    string       messagebody = "You paid your invoice of amount " + checkPayment.PaymentAmount + " and billing Id " + checkPayment.BillingId;
                    const string subject     = "Receipt of Paymment";
                    string       body        = messagebody;

                    var smtp = new SmtpClient
                    {
                        Host                  = "smtp.gmail.com",
                        Port                  = 587,
                        EnableSsl             = true,
                        DeliveryMethod        = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials           = new System.Net.NetworkCredential(fromAddress.Address, "xrtwdhjqxqvsurfn")
                    };
                    using (var message = new MailMessage(fromAddress, toAddress)
                    {
                        Subject = subject,
                        Body = body
                    })
                    {
                        smtp.Send(message);
                    }

                    Console.WriteLine(get_patient_email);
                    Console.WriteLine(get_patient_name);
                }
                return(View("CheckPaymentSuccessful"));
            }
            ViewData["BillingId"] = new SelectList(_context.Billing, "BillingId", "BillingId", checkPayment.BillingId);
            return(View("CheckPaymentSuccessful"));
        }
 public void TearDown()
 {
     _checkPayment = null;
 }
Пример #18
0
        public static void Main(string[] Args)
        {
            Console.WriteLine("---------------------------------------------------------");
            Console.WriteLine("Executing Sample from File: DO_TeleCheck.cs");
            Console.WriteLine("---------------------------------------------------------");

            // Create the Data Objects.
            // Create the User data object with the required user details.
            UserInfo User = new UserInfo("<user>", "<vendor>", "<partner>", "<password>");

            // Create the Payflow  Connection data object with the required connection details.
            // The PAYFLOW_HOST property is defined in the App config file.
            PayflowConnectionData Connection = new PayflowConnectionData();

            // Create a new Invoice data object with the Amount, Billing Address etc. details.
            Invoice Inv = new Invoice();

            // Set Amount.
            Currency Amt = new Currency(new decimal(25.12));

            Inv.Amt    = Amt;
            Inv.PoNum  = "PO12345";
            Inv.InvNum = "INV12345";

            // Set the Billing Address details.
            BillTo Bill = new BillTo();

            Bill.BillToStreet  = "123 Main St.";
            Bill.BillToZip     = "12345";
            Bill.BillToCity    = "New York";
            Bill.BillToState   = "PA";
            Bill.BillToZip     = "12345";
            Bill.BillToPhone   = "123-4546-7890";
            Bill.BillToEmail   = "*****@*****.**";
            Bill.BillToCountry = "US";
            Inv.BillTo         = Bill;

            // Set the IP address of the customer
            CustomerInfo custInfo = new CustomerInfo();

            custInfo.CustIP  = "111.111.11.111";
            Inv.CustomerInfo = custInfo;

            // Create a new Payment Device - Check Payment data object.
            // The input parameters is MICR. Magnetic Ink Check Reader. This is the entire line
            // of numbers at the bottom of all checks. It includes the transit number, account
            // number, and check number.
            CheckPayment ChkPayment = new CheckPayment("1234567804390850001234");

            // Name property needs to be set for the Check Payment.
            ChkPayment.Name = "Ivan Smith";
            // Create a new Tender - Check Tender data object.
            CheckTender ChkTender = new CheckTender(ChkPayment);

            // Account holder’s next unused (available) check number. Up to 7 characters.
            ChkTender.ChkNum = "1234";
            // DL or SS is required for a TeleCheck transaction.
            // If CHKTYPE=P, a value for either DL or SS must be passed as an identifier.
            // If CHKTYPE=C, the Federal Tax ID must be passed as the SS value.
            ChkTender.ChkType = "P";
            // Driver’s License number. If CHKTYPE=P, a value for either DL or SS must be passed as an identifier.
            // Format: XXnnnnnnnn
            // XX = State Code, nnnnnnnn = DL Number - up to 31 characters.
            ChkTender.DL = "CAN85452345";
            // Social Security number.  Needed if ChkType = P
            ChkTender.SS = "456765833";
            // AuthType = I-Internet Check, P-Checks by Phone, D-Prearranged Deposit
            ChkTender.AuthType = "I";

            // Create a new TeleCheck - Authorization Transaction.
            AuthorizationTransaction Trans = new AuthorizationTransaction(
                User, Connection, Inv, ChkTender, PayflowUtility.RequestId);

            //Want VERBOSITY=HIGH to get all the response values back.
            Trans.Verbosity = "HIGH";

            // Submit the Transaction
            Response Resp = Trans.SubmitTransaction();

            // Display the transaction response parameters.
            if (Resp != null)
            {
                // Get the Transaction Response parameters.
                TransactionResponse TrxnResponse = Resp.TransactionResponse;
                if (TrxnResponse != null)
                {
                    Console.WriteLine("RESULT = " + TrxnResponse.Result);
                    Console.WriteLine("PNREF = " + TrxnResponse.Pnref);
                    Console.WriteLine("RESPMSG = " + TrxnResponse.RespMsg);
                    Console.WriteLine("AUTHCODE = " + TrxnResponse.AuthCode);
                    Console.WriteLine("HOSTCODE = " + TrxnResponse.HostCode);
                    Console.WriteLine("TRACEID = " + TrxnResponse.TraceId);
                    Console.WriteLine("ACHSTATUS = " + TrxnResponse.AchStatus);
                }
                // Display the response.
                Console.WriteLine(PayflowUtility.GetStatus(Resp) + Environment.NewLine);
                // Get the Transaction Context and check for any contained SDK specific errors (optional code).
                Context TransCtx = Resp.TransactionContext;
                if (TransCtx != null && TransCtx.getErrorCount() > 0)
                {
                    Console.WriteLine("Transaction Errors = " + TransCtx.ToString() + Environment.NewLine);
                }
                if (TrxnResponse.Result == 0)
                {
                    // Transaction approved, display acceptance verbiage, after consumer accepts, capture the
                    // transaction to finalize it.
                    CaptureTransaction capTrans = new CaptureTransaction(TrxnResponse.Pnref, User, Connection, null, ChkTender, PayflowUtility.RequestId);
                    // Set the transaction verbosity to HIGH to display most details.
                    capTrans.Verbosity = "HIGH";

                    // Submit the Transaction
                    Response capResp = capTrans.SubmitTransaction();

                    // Display the transaction response parameters.
                    if (capResp != null)
                    {
                        // Get the Transaction Response parameters.
                        TransactionResponse capTrxnResponse = capResp.TransactionResponse;
                        if (capTrxnResponse != null)
                        {
                            Console.WriteLine("RESULT = " + capTrxnResponse.Result);
                            Console.WriteLine("PNREF = " + capTrxnResponse.Pnref);
                            Console.WriteLine("RESPMSG = " + capTrxnResponse.RespMsg);
                            Console.WriteLine("HOSTCODE = " + capTrxnResponse.HostCode);
                            Console.WriteLine("TRACEID = " + capTrxnResponse.TraceId);
                        }
                        // Display the response.
                        Console.WriteLine(PayflowUtility.GetStatus(capResp) + Environment.NewLine);
                        // Get the Transaction Context and check for any contained SDK specific errors (optional code).
                        Context capTransCtx = capResp.TransactionContext;
                        if (capTransCtx != null && capTransCtx.getErrorCount() > 0)
                        {
                            Console.WriteLine("Transaction Errors = " + capTransCtx.ToString() + Environment.NewLine);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Unable to capture transaction as it declined or failed." + Environment.NewLine);
                    }
                }
            }
            Console.WriteLine("Press Enter to Exit ...");
            Console.ReadLine();
        }
        internal static BillPayment CreateBillPayment_CheckPayment()
        {
            BillPayment billPayment = new BillPayment();

            Vendor vendor = new Vendor();

            //vendor.DisplayName = "00124a1f-ff2a-41ad-b3f9-8";
            vendor.Id = "35";

            BillPaymentCheck billPaymentCheck = new BillPaymentCheck();

            billPaymentCheck.BankAccountRef = new ReferenceType()
            {
                //name = "Bank (1091836770)",
                Value = "136"
            };


            CheckPayment checkPayment = new CheckPayment();

            checkPayment.AcctNum         = "AcctNum" + GetGuid().Substring(0, 5);
            checkPayment.BankName        = "BankName" + GetGuid().Substring(0, 5);
            checkPayment.CheckNum        = "CheckNum" + GetGuid().Substring(0, 5);
            checkPayment.NameOnAcct      = "Name" + GetGuid().Substring(0, 5);
            checkPayment.Status          = "Status" + GetGuid().Substring(0, 5);
            billPaymentCheck.CheckDetail = checkPayment;

            PhysicalAddress payeeAddr = new PhysicalAddress();

            payeeAddr.Line1 = "Line 1";
            payeeAddr.Line2 = "Line 2";
            payeeAddr.City  = "Mountain View";
            payeeAddr.CountrySubDivisionCode = "CA";
            payeeAddr.PostalCode             = "94043";

            billPaymentCheck.PayeeAddr            = payeeAddr;
            billPaymentCheck.PrintStatus          = PrintStatusEnum.NeedToPrint;
            billPaymentCheck.PrintStatusSpecified = true;


            List <Line> lineList = new List <Line>();

            Line line1 = new Line();

            //line.LineNum = "LineNum";
            //line.Description = "Description";

            line1.Amount          = 100;
            line1.AmountSpecified = true;
            List <LinkedTxn> LinkedTxnList1 = new List <LinkedTxn>();
            LinkedTxn        linkedTxn1     = new LinkedTxn();

            linkedTxn1.TxnId   = "547";
            linkedTxn1.TxnType = TxnTypeEnum.Bill.ToString();
            LinkedTxnList1.Add(linkedTxn1);
            line1.LinkedTxn = LinkedTxnList1.ToArray();

            lineList.Add(line1);

            billPayment.AnyIntuitObject  = billPaymentCheck;
            billPayment.PayType          = BillPaymentTypeEnum.Check;
            billPayment.PayTypeSpecified = true;
            billPayment.Line             = lineList.ToArray();

            billPayment.TotalAmt          = 100;
            billPayment.TotalAmtSpecified = true;

            billPayment.VendorRef = new ReferenceType()
            {
                //name = vendor.DisplayName,
                Value = vendor.Id
            };

            return(billPayment);
        }
Пример #20
0
        /// <summary>
        /// Implement PayByCheck method
        /// </summary>
        public void PayByCheck()
        {
            decimal balance = sale.getBalance();
            decimal amountEnter = Amount;
            decimal amount = (amountEnter > balance ? balance : amountEnter);
            PaymentMethod payment = new CheckPayment(amount);

            if (amountEnter <= balance)
            {
                sale.processPayment(payment);
                UpdatePaymentMethodView();
            }
            else
                MessageBox.Show("Your check payment cannot be greater than your balance.");
        }