protected PaymentState GetPaymentStateFromTransaction(transactionDetailsType transaction) { var paymentState = PaymentState.Initialized; switch (transaction.transactionStatus) { case "authorizedPendingCapture": paymentState = PaymentState.Authorized; break; case "capturedPendingSettlement": case "settledSuccessfully": paymentState = PaymentState.Captured; break; case "voided": paymentState = PaymentState.Cancelled; break; case "refundSettledSuccessfully": case "refundPendingSettlement": paymentState = PaymentState.Refunded; break; } return(paymentState); }
public static void transactionDetailsType(transactionDetailsType request) { if (null != request) { if (0 <= request.requestedAmount) { request.requestedAmountSpecified = true; } if (0 <= request.prepaidBalanceRemaining) { request.prepaidBalanceRemainingSpecified = true; } if (request.taxExempt) { request.taxExemptSpecified = true; } if (request.recurringBilling) { request.recurringBillingSpecified = true; } lineItemType(request.lineItems); } }
public void MockgetTransactionDetailsTest() { //define all mocked objects as final var mockController = GetMockController <getTransactionDetailsRequest, getTransactionDetailsResponse>(); var mockRequest = new getTransactionDetailsRequest { merchantAuthentication = new merchantAuthenticationType { name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey }, }; var transactionDetailsType = new transactionDetailsType { AVSResponse = "avs", }; var mockResponse = new getTransactionDetailsResponse { refId = "1234", sessionToken = "sessiontoken", transaction = transactionDetailsType, }; var errorResponse = new ANetApiResponse(); var results = new List <String>(); const messageTypeEnum messageTypeOk = messageTypeEnum.Ok; SetMockControllerExpectations <getTransactionDetailsRequest, getTransactionDetailsResponse, getTransactionDetailsController>( mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk); mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM); //mockController.MockObject.Execute(); // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM); var controllerResponse = mockController.MockObject.GetApiResponse(); Assert.IsNotNull(controllerResponse); Assert.IsNotNull(controllerResponse.transaction); LogHelper.info(Logger, "getTransactionDetails: Details:{0}", controllerResponse.transaction); }
/// <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(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(creditCardType)) { var cc = (creditCardType)trans.payment.Item; result.CardNumber = cc.cardNumber; result.CardExpiration = cc.expirationDate; } } 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); }