Ejemplo n.º 1
0
        /// <summary>
        /// Creates a Transaction directly from the API Response
        /// </summary>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        public static Transaction NewFromResponse(transactionDetailsType trans) {
            var result = new Transaction();

            result.TransactionID = trans.transId;
            result.DateSubmitted = trans.submitTimeUTC;
            result.TransactionType = trans.transactionType;
            result.Status = trans.transactionStatus;
            result.ResponseCode = trans.responseCode;
            result.ResponseReason = trans.responseReasonDescription;

            result.AuthorizationCode = trans.authCode;
            result.AVSCode = trans.AVSResponse;
            result.CardResponseCode = trans.cardCodeResponse;
            result.CAVVCode = trans.CAVVResponse;

            if (trans.FDSFilters != null) {
                for (int i = 0; i < trans.FDSFilters.Length; i++) {
                    var filter = (FDSFilterType)trans.FDSFilters[i];
                    result.FraudFilters.Add(filter.name);
                }
            }

            if (trans.batch != null) {
                result.BatchSettlementID = trans.batch.batchId;
                result.BatchSettlementState = trans.batch.settlementState;
                result.BatchSettledOn = trans.batch.settlementTimeUTC;
            }

            if (trans.order != null) {
                result.InvoiceNumber = trans.order.invoiceNumber;
                result.PONumber = trans.order.purchaseOrderNumber;
                result.OrderDescription = trans.order.description;
            }

            result.RequestedAmount = trans.requestedAmount;
            result.AuthorizationAmount = trans.authAmount;
            result.SettleAmount = trans.settleAmount;

            if (trans.tax != null) {
                result.Tax = trans.tax.amount;
                result.TaxDescription = trans.tax.description;

            }

            if (trans.shipping != null) {
                result.Shipping = trans.shipping.amount;
                result.ShippingDescription = trans.shipping.description;
            }

            if (trans.duty != null) {
                result.Duty = trans.duty.amount;
                result.DutyDescription = trans.duty.description;
            }

            if (trans.lineItems != null) {

                for (int i = 0; i < trans.lineItems.Length; i++) {
                    var item = (lineItemType)trans.lineItems[i];
                    var line = new LineItem();
                    line.Description = item.description;
                    line.ID = item.itemId;
                    line.Name = item.name;
                    line.Quantity = item.quantity;
                    line.Taxable = item.taxable;
                    line.UnitPrice = item.unitPrice;
                    result._lineItems.Add(line);
                }

            }
            if (trans.payment != null)
            {
                if (trans.payment.Item.GetType() == typeof (creditCardMaskedType))
                {
                    var cc = (creditCardMaskedType) trans.payment.Item;
                    result.CardNumber = cc.cardNumber;
                    result.CardExpiration = cc.expirationDate;
                    result.CardType = cc.cardType;
                }
                if (trans.payment.Item.GetType() == typeof (bankAccountMaskedType))
                {
                    var ba = (bankAccountMaskedType) trans.payment.Item;
                    result.eCheckBankAccount = new BankAccount()
                        {
                            accountTypeSpecified = ba.accountTypeSpecified,
                            accountType = (BankAccountType) Enum.Parse(typeof (BankAccountType), ba.accountType.ToString(), true),
                            routingNumber = ba.routingNumber,
                            nameOnAccount = ba.nameOnAccount,
                            echeckTypeSpecified = ba.echeckTypeSpecified,
                            echeckType = (EcheckType) Enum.Parse(typeof (EcheckType), ba.echeckType.ToString(), true),
                            bankName = ba.bankName
                        };
                }
            }
            if (trans.customer != null) {
                result.CustomerID = trans.customer.id;
                result.CustomerEmail = trans.customer.email;
            }

            if (trans.billTo != null) {
                result.BillingAddress = new Address(trans.billTo);
            }
            if (trans.shipTo != null) {
                result.ShippingAddress = new Address(trans.shipTo);
            }

            result.IsRecurring = trans.recurringBilling;
            result.TaxExempt = trans.taxExempt;

            result.MarketType = trans.marketType;
            result.Product = trans.product;
            result.MobileDeviceID = trans.mobileDeviceId;
            result.RefTransactionID = trans.refTransId;

            if ((trans.subscription != null) && (trans.subscription.id > 0))
            {
                result.Subscription = new SubscriptionPayment();
                result.Subscription.ID = trans.subscription.id;
                result.Subscription.PayNum = trans.subscription.payNum;
            }

            if ((trans.returnedItems != null) && (trans.returnedItems.Any()))
            {
                result.HasReturnedItems = NullableBooleanEnum.True;
                result.ReturnedItems = new ReturnedItemType[trans.returnedItems.Count()];
                int iRI = 0;
                foreach (var ri in trans.returnedItems)
                {
                    result.ReturnedItems[iRI] = new ReturnedItemType()
                        {
                            id = ri.id,
                            code = ri.code,
                            dateLocal = ri.dateLocal,
                            dateUTC = ri.dateUTC,
                            description = ri.description
                        };
                    iRI++;

                }
            }

            if ((trans.solution != null) && (trans.solution.id.Length > 0))
            {
                result.Solution = new SolutionType()
                    {
                        id = trans.solution.id,
                        name = trans.solution.name
                    };
            }

            return result;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a Transaction directly from the API Response
        /// </summary>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        public static Transaction NewFromResponse(transactionDetailsType trans)
        {
            var result = new Transaction();

            result.TransactionID = trans.transId;
            result.DateSubmitted = trans.submitTimeUTC;
            result.TransactionType = trans.transactionType;
            result.Status = trans.transactionStatus;
            result.ResponseCode = trans.responseCode;
            result.ResponseReason = trans.responseReasonDescription;

            result.AuthorizationCode = trans.authCode;
            result.AVSCode = trans.AVSResponse;
            result.CardResponseCode = trans.cardCodeResponse;
            result.CAVVCode = trans.CAVVResponse;

            if (trans.FDSFilters != null) {
                for (int i = 0; i < trans.FDSFilters.Length; i++) {
                    var filter = (FDSFilterType)trans.FDSFilters[i];
                    result.FraudFilters.Add(filter.name);
                }
            }

            if (trans.batch != null) {
                result.BatchSettlementID = trans.batch.batchId;
                result.BatchSettlementState = trans.batch.settlementState;
                result.BatchSettledOn = trans.batch.settlementTimeUTC;
            }

            if (trans.order != null) {
                result.InvoiceNumber = trans.order.invoiceNumber;
                result.PONumber = trans.order.purchaseOrderNumber;
                result.OrderDescription = trans.order.description;
            }

            result.RequestedAmount = trans.requestedAmount;
            result.AuthorizationAmount = trans.authAmount;
            result.SettleAmount = trans.settleAmount;

            if (trans.tax != null) {
                result.Tax = trans.tax.amount;
                result.TaxDescription = trans.tax.description;

            }

            if (trans.shipping != null) {
                result.Shipping = trans.shipping.amount;
                result.ShippingDescription = trans.shipping.description;
            }

            if (trans.duty != null) {
                result.Duty = trans.duty.amount;
                result.DutyDescription = trans.duty.description;
            }

            if (trans.lineItems != null) {

                for (int i = 0; i < trans.lineItems.Length; i++) {
                    var item = (lineItemType)trans.lineItems[i];
                    var line = new LineItem();
                    line.Description = item.description;
                    line.ID = item.itemId;
                    line.Name = item.name;
                    line.Quantity = item.quantity;
                    line.Taxable = item.taxable;
                    line.UnitPrice = item.unitPrice;
                    result._lineItems.Add(line);
                }

            }
            if (trans.payment != null) {
                if (trans.payment.Item.GetType() == typeof(creditCardMaskedType))
                {
                    var cc = (creditCardMaskedType)trans.payment.Item;
                    result.CardNumber = cc.cardNumber;
                    result.CardExpiration = cc.expirationDate;
                    result.CardType = cc.cardType;
                }
            }
            if (trans.customer != null) {
                result.CustomerID = trans.customer.id;
                result.CustomerEmail = trans.customer.email;
            }

            if (trans.billTo != null) {
                result.BillingAddress = new Address(trans.billTo);
            }
            if (trans.shipTo != null) {
                result.ShippingAddress = new Address(trans.shipTo);
            }

            result.IsRecurring = trans.recurringBilling;
            result.TaxExempt = trans.taxExempt;
            return result;
        }