Пример #1
0
        public static void DoBillRun()
        {
            IEnumerable<InsuranceDetails> full_billing_accounts = null;
            IEnumerable<InsuranceDetails> partial_billing_accounts = null;
            List<DatatransTransaction> transactions = null;
            DatatransTransaction transaction = null;
            double partial_amount = 0.00;
            int days_to_bill = 0;
            int paymentMethod = 0;

            full_billing_accounts = GetInsurancesToBillFull();
            partial_billing_accounts = GetInsurancesToBillPartially();
            transactions = new List<DatatransTransaction>();

            // Normale Belastung. Versicherungsende liegt in der Zukunft (nicht im aktuellen Monat)
            foreach (InsuranceDetails details in full_billing_accounts)
            {
                transaction = new DatatransTransaction()
                {
                    Amount = (Decimal)PraemienHelper.GetPraemie((int)details.Franchise, paymentMethod),
                    DetailsId = details.DetailsId
                };
                transactions.Add(transaction);
            }

            // Teilweise Belastung. Versicherungsende im aktuellen Monat
            foreach (InsuranceDetails details in partial_billing_accounts)
            {
                days_to_bill = details.EndDate.Value.Day;
                partial_amount = PraemienHelper.GetPraemie((int)details.Franchise, paymentMethod) / 30 * days_to_bill;

                transaction = new DatatransTransaction()
                {
                    Amount = (Decimal)partial_amount,
                    DetailsId = details.DetailsId
                };
                transactions.Add(transaction);
            }

            DatatransHelper.BatchExecuteTransactions(transactions);
        }
Пример #2
0
        public static string PrepareForm(DatatransTransaction p_transaction, string rootUrl)
        {
            StringWriter writer = null;
            string transationId = null;

            writer = new StringWriter();
            transationId = p_transaction.TransactionId.ToString();
            transationId = transationId.PadLeft(8, '0');

            if (TestMode)
            {
                p_transaction.Amount = new Decimal(1.00); ;
            }

            writer.WriteLine("<html><head></head><body onload=\"document.datatrans.submit()\">");
            writer.WriteLine("<form name='datatrans' id='datatrans' action='https://payment.datatrans.biz/upp/jsp/upStart.jsp' method='post'>");
            writer.WriteLine("<input type='hidden' name='merchantId' value='3000004038'>");  //5923 = xml
            writer.WriteLine(string.Format("<input type='hidden' name='amount' value='{0}'>", (int)p_transaction.Amount * 100));
            writer.WriteLine("<input type='hidden' name='currency' value='CHF'>");
            writer.WriteLine("<input type='hidden' name='useAlias' value='yes'>");
            writer.WriteLine(string.Format("<input type='hidden' name='refno' value='{0}'>", transationId));
            writer.WriteLine("<input type='hidden' 'name='successUrl' value='{0}success.aspx'>", rootUrl);
            writer.WriteLine("<input type='hidden' 'name='errorUrl' value='{0}error.aspx'>", rootUrl);
            writer.WriteLine("<input type='hidden' 'name='cancelUrl' value='{0}cancel.aspx'>", rootUrl);
            writer.WriteLine("</form></body></html>");

            return (writer.ToString());
        }
Пример #3
0
        public static string GetXmlTransaction(DatatransTransaction p_transaction)
        {
            CreditCardAlias alias = null;
            string transaction_id = null;
            double amount = 0.00;

            transaction_id = p_transaction.TransactionId.ToString();
            transaction_id = transaction_id.PadLeft(8, '0');

            amount = (double)p_transaction.Amount;

            if (TestMode)
            {
                amount = 1.00;
            }

            using (AviertDataContext context = new AviertDataContext())
            {
                alias = context.CreditCardAlias.Single(a => a.InsuranceId == p_transaction.DetailsId);
            }

            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
                         "<authorizationService version=\"1\">" +
                         "<body merchantId=\"3000005923\">" +
                         "<transaction refno=\"" + transaction_id + "\">" +
                         "<request>" +
                         "<amount>" + (int)(amount / 100) + "</amount>" +
                         "<currency>CHF</currency>" +
                         "<aliasCC>" + alias.Alias + "</aliasCC>" +
                         "<expm>" + alias.ExpirationMonth + "</expm>" +
                         "<expy>" + alias.ExpirationYear + "</expy>" +
                         "</request>" +
                         "</transaction>" +
                         "</body>" +
                         "</authorizationService>";

            return (xml);
        }
Пример #4
0
        public static DatatransTransaction CreateTransaction(InsuranceDetails p_details, double p_amount)
        {
            DatatransTransaction transaction = null;

            transaction = new DatatransTransaction()
            {
                DetailsId = p_details.DetailsId,
                Amount = (decimal)p_amount,
                Status = (int)TransactionStatus.Pending,
                InsDate = DateTime.Now
            };

            using (AviertDataContext context = new AviertDataContext())
            {
                context.DatatransTransaction.InsertOnSubmit(transaction);
                context.SubmitChanges();
            }

            return (transaction);
        }