public static void DoReport() { DateTime from = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("M/d/yyyy") + " 00:00:00"); DateTime to = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("M/d/yyyy") + " 23:59:59"); ReportingGateway gate = new ReportingGateway(authorizeLogin, authorizeTranKey, ServiceMode.Live); List <AuthorizeNet.Transaction> transactions = gate.GetTransactionList(from, to); List <AuthorizeNet.Transaction> transactionsDetail = new List <AuthorizeNet.Transaction>(); foreach (AuthorizeNet.Transaction item in transactions) { AuthorizeNet.Transaction tr = new AuthorizeNet.Transaction(); tr = gate.GetTransactionDetails(item.TransactionID); tr.FirstName = item.FirstName; if (tr.Status == "settledSuccessfully") { transactionsDetail.Add(tr); } } string fileName = ""; if (ExcelReport.GenerateReport(transactionsDetail, out fileName)) { Email.SendEmail(fileName); } }
internal AuthorizeNetSDK.Transaction Parse(NameValueCollection postData) { var t = new AuthorizeNetSDK.Transaction { ResponseCode = GetIntValue(postData["x_response_code"], 0), //x_response_subcode //x_response_reason_code ResponseReason = postData["x_response_reason_text"], AuthorizationCode = postData["x_auth_code"], AVSCode = postData["x_avs_code"], TransactionID = postData["x_trans_id"], InvoiceNumber = postData["x_invoice_num"], Description = postData["x_description"], RequestedAmount = GetDecimalValue(postData["x_amount"], 0), //postData["x_method"], TransactionType = postData["x_type"], CustomerID = postData["x_cust_id"], FirstName = postData["x_first_name"], LastName = postData["x_last_name"], BillingAddress = new AuthorizeNetSDK.Address { Company = postData["x_company"], Street = postData["x_address"], City = postData["x_city"], State = postData["x_state"], Zip = postData["x_zip"], Country = postData["x_country"], Phone = postData["x_phone"], Fax = postData["x_fax"] }, CustomerEmail = postData["x_e-mail"], ShippingAddress = new AuthorizeNetSDK.Address { First = postData["x_ship_to_first_name"], Last = postData["x_ship_to_last_name"], Company = postData["x_ship_to_company"], Street = postData["x_ship_to_address"], City = postData["x_ship_to_city"], State = postData["x_ship_to_state"], Zip = postData["x_ship_to_zip"], Country = postData["x_ship_to_country"] }, Tax = GetDecimalValue(postData["x_tax"], 0), Duty = GetDecimalValue(postData["x_duty"], 0), //FraudFilters = postData["x_freight"], TaxExempt = (postData["x_tax_exempt"] ?? string.Empty).ToUpper() == "TRUE", PONumber = postData["x_po_num"], //postData["x_MD5_Hash"], CardResponseCode = postData["x_cavv_response"], //postData["x_test_request"], Subscription = new AuthorizeNetSDK.SubscriptionPayment { ID = GetIntValue(postData["x_subscription_id"], 0), PayNum = GetIntValue(postData["x_subscription_paynum"], 0) } }; t.IsRecurring = t.Subscription.ID > 0; return(t); }
/// <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; }
/// <summary> /// Creates a Transaction directly from the API Response /// </summary> /// <param name="trans">The trans.</param> /// <returns></returns> public static Transaction NewFromResponse(transactionSummaryType trans) { var result = new Transaction(); result.TransactionID = trans.transId; result.DateSubmitted = trans.submitTimeUTC; result.Status = trans.transactionStatus; result.LastName = trans.lastName; result.InvoiceNumber = trans.invoiceNumber; result.FirstName = trans.firstName; result.SettleAmount = trans.settleAmount; result.CardNumber = trans.accountNumber; result.CardType = trans.accountType; result.MarketType = trans.marketType; result.Product = trans.product; result.MobileDeviceID = trans.mobileDeviceId; 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.hasReturnedItemsSpecified) { result.HasReturnedItems = trans.hasReturnedItems ? NullableBooleanEnum.True : NullableBooleanEnum.False; } else { result.HasReturnedItems = NullableBooleanEnum.Null; } return result; }
/// <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; }
/// <summary> /// Creates a Transaction directly from the API Response /// </summary> /// <param name="trans">The trans.</param> /// <returns></returns> public static Transaction NewFromResponse(transactionSummaryType trans) { var result = new Transaction(); result.TransactionID = trans.transId; result.DateSubmitted = trans.submitTimeUTC; result.Status = trans.transactionStatus; result.LastName = trans.lastName; result.InvoiceNumber = trans.invoiceNumber; result.FirstName = trans.firstName; result.SettleAmount = trans.settleAmount; result.CardNumber = trans.accountNumber; result.CardType = trans.accountType; return result; }