/// <summary> /// Creates the transaction. /// </summary> /// <param name="profile_id">The profile_id.</param> /// <param name="payment_profile_id">The payment_profile_id.</param> /// <param name="amount">The amount.</param> public static void CreateTransaction(long profile_id, long payment_profile_id, decimal amount) { try { AuthorizeNet.ProfileTransAuthCaptureType auth_capture = new AuthorizeNet.ProfileTransAuthCaptureType(); auth_capture.customerProfileId = profile_id; auth_capture.customerPaymentProfileId = payment_profile_id; auth_capture.amount = amount; auth_capture.order = new AuthorizeNet.OrderExType(); auth_capture.order.invoiceNumber = "invoice" + DateTime.Now.ToShortTimeString(); AuthorizeNet.ProfileTransactionType trans = new AuthorizeNet.ProfileTransactionType(); trans.Item = auth_capture; AuthorizeNet.CreateCustomerProfileTransactionResponseType response = ServiceSoapClient.CreateCustomerProfileTransaction(MerchantAuthentication, trans, null); if (response.resultCode == AuthorizeNet.MessageTypeEnum.Error) { throw new KioskException(string.Format("Could not create transaction for profile id/ payment profile id: {0}/{1}.", profile_id, payment_profile_id)); } } catch (KioskException kioskException) { AlertController.AuthorizeDotNetAlert(kioskException); throw kioskException; } catch (Exception ex) { KioskException kioskException = new KioskException(Constants.Messages.CouldNotConnectToAuthorize); kioskException.OriginalException = ex; AlertController.AuthorizeDotNetAlert(ex); throw kioskException; } }
/// <summary> /// Gets the customer payment profile. /// </summary> /// <param name="profileId">The profile id.</param> /// <param name="paymentProfileId">The profile payment id.</param> /// <returns></returns> public static AuthorizeNet.CustomerPaymentProfileMaskedType GetCustomerPaymentProfile(long profileId, long paymentProfileId) { AuthorizeNet.CustomerPaymentProfileMaskedType paymentProfile = null; try { AuthorizeNet.GetCustomerPaymentProfileResponseType responseType = ServiceSoapClient.GetCustomerPaymentProfile(MerchantAuthentication, profileId, paymentProfileId); paymentProfile = responseType.paymentProfile; if (responseType.resultCode == AuthorizeNet.MessageTypeEnum.Error) { throw new KioskException(string.Format("Could not get customer payment profile for profile id/ payment profile Id: {0}/{1}.", profileId, paymentProfileId)); } } catch (KioskException kioskException) { AlertController.AuthorizeDotNetAlert(kioskException); throw kioskException; } catch (Exception ex) { KioskException kioskException = new KioskException(Constants.Messages.CouldNotConnectToAuthorize); kioskException.OriginalException = ex; AlertController.AuthorizeDotNetAlert(ex); throw kioskException; } return(paymentProfile); }
/// <summary> /// Creates the customer profile. /// </summary> /// <param name="emailAddress">The email address.</param> /// <returns></returns> public static long CreateCustomerProfile(string emailAddress) { long customerProfileId = 0; try { AuthorizeNet.CustomerProfileType m_new_cust = new AuthorizeNet.CustomerProfileType(); m_new_cust.email = emailAddress; m_new_cust.description = "Kiosk customer " + DateTime.Now.ToShortTimeString(); AuthorizeNet.CreateCustomerProfileResponseType response = ServiceSoapClient.CreateCustomerProfile(MerchantAuthentication, m_new_cust, AuthorizeNet.ValidationModeEnum.none); customerProfileId = response.customerProfileId; if (response.resultCode == AuthorizeNet.MessageTypeEnum.Error) { throw new KioskException(string.Format("Could not create customer profile for email: {0}.", emailAddress)); } } catch (KioskException kioskException) { AlertController.AuthorizeDotNetAlert(kioskException); throw kioskException; } catch (Exception ex) { KioskException kioskException = new KioskException(Constants.Messages.CouldNotConnectToAuthorize); kioskException.OriginalException = ex; AlertController.AuthorizeDotNetAlert(ex); throw kioskException; } return(customerProfileId); }
/// <summary> /// Creates the customer payment profile. /// </summary> /// <param name="profile_id">The profile_id.</param> /// <param name="ccNumber">The cc number.</param> /// <param name="expire_date">The expire_date.</param> /// <returns></returns> public static long CreateCustomerPaymentProfile(long profile_id, string ccNumber, string expire_date, string firstName, string lastName, string zipCode) { long customerPaymentProfileId = 0; try { AuthorizeNet.CustomerPaymentProfileType new_payment_profile = new AuthorizeNet.CustomerPaymentProfileType(); AuthorizeNet.PaymentType new_payment = new AuthorizeNet.PaymentType(); AuthorizeNet.CreditCardType new_card = new AuthorizeNet.CreditCardType(); new_card.cardNumber = ccNumber; new_card.expirationDate = expire_date; new_payment.Item = new_card; new_payment_profile.payment = new_payment; new_payment_profile.billTo = new AuthorizeNet.CustomerAddressType { firstName = firstName, lastName = lastName, zip = zipCode }; AuthorizeNet.CreateCustomerPaymentProfileResponseType response = ServiceSoapClient.CreateCustomerPaymentProfile(MerchantAuthentication, profile_id, new_payment_profile, AuthorizeNet.ValidationModeEnum.testMode); customerPaymentProfileId = response.customerPaymentProfileId; if (response.resultCode == AuthorizeNet.MessageTypeEnum.Error) { throw new KioskException(string.Format("Could not create customer payment profile for profile id: {0}.", profile_id)); } } catch (KioskException kioskException) { AlertController.AuthorizeDotNetAlert(kioskException); throw kioskException; } catch (Exception ex) { KioskException kioskException = new KioskException(Constants.Messages.CouldNotConnectToAuthorize); kioskException.OriginalException = ex; AlertController.AuthorizeDotNetAlert(ex); throw kioskException; } return(customerPaymentProfileId); }
/// <summary> /// Processes the CC. /// </summary> /// <param name="ccNumber">The cc number.</param> /// <param name="ccExpDate">The cc exp date.</param> /// <param name="chargeAmount">The charge amount.</param> /// <param name="orderNumber">The order number.</param> /// <param name="zipCode">The zip code.</param> /// <returns></returns> private static string ProcessCC(string ccNumber, string ccExpDate, decimal chargeAmount, string orderNumber, string zipCode, string name) { try { if (chargeAmount > 0) { var request = new AuthorizationRequest(ccNumber, ccExpDate, chargeAmount, "Bettery Charge"); request.Zip = zipCode; // Store the Swap Station ID in the CustID field request.CustId = ConfigurationManager.AppSettings[Constants.SettingKeys.StationId]; // Add customer info if user is logged in. //if (BaseController.CurrentTransaction.Email != null || BaseController.CurrentTransaction.Email != String.Empty) // request.Email = BaseController.CurrentTransaction.Email; if (BaseController.LoggedOnUser != null) { request.AddCustomer(BaseController.LoggedOnUser.MemberId.ToString(), BaseController.LoggedOnUser.MemberFirstName, BaseController.LoggedOnUser.MemberLastName, "", "", BaseController.CurrentTransaction.ZipCode); } else { request.FirstName = name; request.Zip = BaseController.CurrentTransaction.ZipCode; } // Get Test Request setting from config file request.TestRequest = ConfigurationManager.AppSettings["TestTransaction"].ToString(); // Set Test Request true for admins if (BaseController.LoggedOnUser != null && (BaseController.LoggedOnUser.GroupID == Constants.Group.SuperUser || BaseController.LoggedOnUser.GroupID == Constants.Group.SwapStationAdmin || BaseController.LoggedOnUser.GroupID == Constants.Group.CompanyAccount)) { request.TestRequest = "TRUE"; } //order number request.AddInvoice(orderNumber); var gate = new CardPresentGateway(BaseController.ApiLogin, BaseController.TransactionKey, false); //step 3 - make some money var response = gate.Send(request); if (!response.Approved) { BaseController.CurrentTransaction.ZipCode = null; throw new KioskException(Constants.Messages.NonApprovedRequest); } BaseController.CurrentTransaction.TransactionID = response.TransactionID; return(response.AuthorizationCode); } else { return(""); } } catch (KioskException kioskException) { AlertController.AuthorizeDotNetAlert(kioskException); throw kioskException; } catch (Exception ex) { KioskException kioskException = new KioskException(Constants.Messages.CouldNotConnectToAuthorize); kioskException.OriginalException = ex; AlertController.AuthorizeDotNetAlert(ex); Logger.Log(EventLogEntryType.Error, "Could Not Connect to Authorize.NET or other Authorize.NET failure", BaseController.StationId); throw kioskException; } }