/// <summary> /// Gets all TransactionPayments by Member identifier /// </summary> /// <param name="MemberId">Member identifier</param> /// <returns>TransactionPayment collection</returns> public List <TransactionPayment> GetTransactionPaymentsByMemberId(long memberId) { List <TransactionPayment> lstTransactionPayment = new List <TransactionPayment>(); List <Transaction> lstTransaction; using (var dba = new BetEXDataContainer()) { lstTransaction = dba.Transactions.Where(w => w.MemberId == memberId).ToList(); } if (lstTransaction != null && lstTransaction.Count > 0) { foreach (var transaction in lstTransaction) { TransactionPayment transactionPayment = new TransactionPayment(); transactionPayment.TransactionPaymentId = transaction.ID; transactionPayment.TransactionPaymentType = transaction.Type; transactionPayment.MemberId = transaction.MemberId; transactionPayment.MemberIP = transaction.MemberIP; transactionPayment.TransactionPaymentTotal = transaction.Amount; transactionPayment.TransactionPaymentStatusId = transaction.Status; transactionPayment.PaymentMethodId = transaction.PaymentMenthodID; transactionPayment.MemberEmail = transaction.MemberEmail; transactionPayment.TransactionIDRespone = transaction.ResponeTranId != null ? transaction.ResponeTranId.Value : 0; lstTransactionPayment.Add(transactionPayment); } } return(lstTransactionPayment); }
public ActionResult About(FormCollection collection, byte id) { string message = string.Empty; long transactionPaymentId = 0; TransactionPayment transactionPayment = new TransactionPayment(); if (id != 1) { transactionPayment = IoC.Resolve<ITransactionPaymentService>().GetTransactionPaymentByUserId(1); transactionPayment.TransactionPaymentType = id; transactionPayment.MemberIP = Request.UserHostAddress; transactionPayment.RecurringTotalCycles = 1; transactionPayment.RecurringCycleLength = 7; } else { transactionPayment.TransactionPaymentType = id; transactionPayment.MemberId = 1; transactionPayment.MemberIP = Request.UserHostAddress; transactionPayment.MemberEmail = transactionPayment.Customer.Email1; transactionPayment.TransactionPaymentTotal = collection["Amount"].ToDecimal(); transactionPayment.TransactionPaymentStatusId = (int)PaymentStatusEnum.Authorized; transactionPayment.PaymentMethodId = 1; } message = IoC.Resolve<ITransactionPaymentService>().PlaceTransactionPayment(transactionPayment, out transactionPaymentId); ViewBag.Message = message; return View(); }
/// <summary> /// Gets last TransactionPayment by userID /// </summary> /// <param name="UserId">The UserId identifier</param> /// <returns>TransactionPayment</returns> public TransactionPayment GetTransactionPaymentByUserId(long UserId) { TransactionPayment transactionPayment = new TransactionPayment(); Transaction transaction = new Transaction(); using (var dba = new BetEXDataContainer()) { byte type = (byte)1; var listTransaction = dba.Transactions.Where(w => w.MemberId == UserId && w.Type == type).OrderByDescending(z => z.Amount).ToList(); if (listTransaction != null) { transaction = listTransaction[0]; } } if (transaction != null) { transactionPayment.TransactionPaymentId = transaction.ID; transactionPayment.TransactionPaymentType = transaction.Type; transactionPayment.MemberId = transaction.MemberId; transactionPayment.MemberIP = transaction.MemberIP; transactionPayment.TransactionIDRespone = transaction.ResponeTranId != null?transaction.ResponeTranId.Value:0; transactionPayment.TransactionPaymentTotal = transaction.Amount; transactionPayment.TransactionPaymentStatusId = transaction.Status; transactionPayment.PaymentMethodId = transaction.PaymentMenthodID; transactionPayment.MemberEmail = transaction.MemberEmail; } return(transactionPayment); }
/// <summary> /// Cancels recurring payment /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void CancelRecurringPayment(TransactionPayment transactionPayment, ref CancelPaymentResult cancelPaymentResult) { if (transactionPayment.TransactionPaymentTotal == decimal.Zero) return; var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) throw new Exception("Payment method couldn't be loaded"); var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; iPaymentMethod.CancelRecurringPayment(transactionPayment, ref cancelPaymentResult); }
/// <summary> /// Post process payment (payment gateways that require redirecting) /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <returns>The error status, or String.Empty if no errors</returns> public string PostProcessPayment(TransactionPayment transactionPayment) { var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) { throw new Exception("Payment method couldn't be loaded"); } var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; return(iPaymentMethod.PostProcessPayment(transactionPayment)); }
/// <summary> /// Voids payment /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void Void(TransactionPayment transactionPayment, ref CancelPaymentResult cancelPaymentResult) { var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) { throw new Exception("Payment method couldn't be loaded"); } var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; iPaymentMethod.Void(transactionPayment, ref cancelPaymentResult); }
/// <summary> /// Cancels recurring payment /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void CancelRecurringPayment(TransactionPayment transactionPayment, ref CancelPaymentResult cancelPaymentResult) { if (transactionPayment.TransactionPaymentTotal == decimal.Zero) { return; } var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) { throw new Exception("Payment method couldn't be loaded"); } var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; iPaymentMethod.CancelRecurringPayment(transactionPayment, ref cancelPaymentResult); }
/// <summary> /// Process recurring payments /// </summary> /// <param name="transactionPayment">transactionPayment required for an order processing</param> /// <param name="customer">Customer</param> /// <param name="orderGuid">Unique order identifier</param> /// <param name="processPaymentResult">Process payment result</param> public void ProcessRecurringPayment(TransactionPayment transactionPayment, Guid transactionPaymentGuid, ref ProcessPaymentResult processPaymentResult) { if (transactionPayment.TransactionPaymentTotal == decimal.Zero) { processPaymentResult.Error = string.Empty; processPaymentResult.FullError = string.Empty; processPaymentResult.PaymentStatus = PaymentStatusEnum.Paid; } else { var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) { throw new Exception("Payment method couldn't be loaded"); } var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; iPaymentMethod.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); } }
/// <summary> /// Gets an TransactionPayment /// </summary> /// <param name="TransactionPaymentId">The TransactionPayment identifier</param> /// <returns>TransactionPayment</returns> public TransactionPayment GetTransactionPaymentById(long transactionPaymentId) { TransactionPayment transactionPayment = new TransactionPayment(); Transaction transaction; using (var dba = new BetEXDataContainer()) { transaction = dba.Transactions.Where(w => w.ID == transactionPaymentId).SingleOrDefault(); } if (transaction != null) { transactionPayment.TransactionPaymentId = transactionPaymentId; transactionPayment.TransactionPaymentType = transaction.Type; transactionPayment.MemberId = transaction.MemberId; transactionPayment.MemberIP = transaction.MemberIP; transactionPayment.TransactionPaymentTotal = transaction.Amount; transactionPayment.TransactionPaymentStatusId = transaction.Status; transactionPayment.PaymentMethodId = transaction.PaymentMenthodID; transactionPayment.TransactionIDRespone = transaction.ResponeTranId != null? transaction.ResponeTranId.Value:0; transactionPayment.MemberEmail = transaction.MemberEmail; } return(transactionPayment); }
/// <summary> /// Inserts an TransactionPayment /// </summary> /// <param name="TransactionPayment">TransactionPayment</param> public void InsertTransactionPayment(TransactionPayment transactionPayment) { if (transactionPayment == null) { throw new ArgumentNullException("transactionPayment"); } Transaction transaction = new Transaction(); transaction.Type = transactionPayment.TransactionPaymentType; transaction.Amount = transactionPayment.TransactionPaymentTotal; transaction.Status = transactionPayment.TransactionPaymentStatusId; transaction.MemberId = transactionPayment.MemberId; transaction.MemberIP = transactionPayment.MemberIP; transaction.MemberEmail = transactionPayment.MemberEmail; transaction.ResponeTranId = transactionPayment.TransactionIDRespone; transaction.PaymentMenthodID = transactionPayment.PaymentMethodId; transaction.AddedDate = DateTime.Now; transaction.ModifyDate = DateTime.Now; _context.AddToTransactions(transaction); _context.SaveChanges(); }
/// <summary> /// Updates the TransactionPayment /// </summary> /// <param name="TransactionPayment">The TransactionPayment</param> public void UpdateTransactionPayment(TransactionPayment transactionPayment) { if (transactionPayment == null) { throw new ArgumentNullException("transactionPayment"); } Transaction transaction = new Transaction(); transaction = _context.Transactions.Where(w => w.ID == transactionPayment.TransactionPaymentId).SingleOrDefault(); if (transaction != null) { transaction.ID = transactionPayment.TransactionPaymentId; transaction.Type = transactionPayment.TransactionPaymentType; transaction.Amount = transactionPayment.TransactionPaymentTotal; transaction.Status = transactionPayment.TransactionPaymentStatusId; transaction.MemberId = transactionPayment.MemberId; transaction.MemberIP = transactionPayment.MemberIP; transaction.MemberEmail = transactionPayment.MemberEmail; transaction.PaymentMenthodID = transactionPayment.PaymentMethodId; transaction.ModifyDate = DateTime.Now; _context.SaveChanges(); } }
public bool CanRefundOffline(TransactionPayment transactionPayment) { throw new NotImplementedException(); }
/// <summary> /// Updates the TransactionPayment /// </summary> /// <param name="TransactionPayment">The TransactionPayment</param> public void UpdateTransactionPayment(TransactionPayment transactionPayment) { if (transactionPayment == null) throw new ArgumentNullException("transactionPayment"); Transaction transaction = new Transaction(); transaction = _context.Transactions.Where(w => w.ID == transactionPayment.TransactionPaymentId).SingleOrDefault(); if (transaction != null) { transaction.ID = transactionPayment.TransactionPaymentId; transaction.Type = transactionPayment.TransactionPaymentType; transaction.Amount = transactionPayment.TransactionPaymentTotal; transaction.Status = transactionPayment.TransactionPaymentStatusId; transaction.MemberId = transactionPayment.MemberId; transaction.MemberIP = transactionPayment.MemberIP; transaction.MemberEmail = transactionPayment.MemberEmail; transaction.PaymentMenthodID = transactionPayment.PaymentMethodId; transaction.ModifyDate = DateTime.Now; _context.SaveChanges(); } }
/// <summary> /// Places an order /// </summary> /// <param name="transactionPayment">Payment info</param> /// <param name="customer">Customer</param> /// <param name="orderGuid">Order GUID to use</param> /// <param name="orderId">Order identifier</param> /// <returns>The error status, or String.Empty if no errors</returns> public string PlaceTransactionPayment(TransactionPayment transactionPayment, Guid transactionPaymentGuid, out long TransactionPaymentId) { TransactionPaymentId = 0; string outMessage = string.Empty; var processPaymentResult = new ProcessPaymentResult(); var customerService = IoC.Resolve<ICustomerService>(); var paymentService = IoC.Resolve<IPaymentService>(); try { if (!CommonHelper.IsValidEmail(transactionPayment.Customer.Email1)) { throw new Exception("Email is not valid"); } if (transactionPayment == null) throw new ArgumentNullException("transactionPayment"); //skip payment workflow if order total equals zero PaymentMethod paymentMethod = null; string paymentMethodName = string.Empty; paymentMethod = paymentService.GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) throw new Exception("Payment method couldn't be loaded"); paymentMethodName = paymentMethod.Name; //recurring or standard bool isRecurring = false; if (transactionPayment.TransactionPaymentType == 2) isRecurring = true; //process payment if (!transactionPayment.IsRecurringPayment) { if (isRecurring) { paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); #region tempcode //recurring cart //var recurringPaymentType = paymentService.SupportRecurringPayments(transactionPayment.PaymentMethodId); //switch (recurringPaymentType) //{ // case RecurringPaymentTypeEnum.NotSupported: // throw new Exception("Recurring payments are not supported by selected payment method"); // case RecurringPaymentTypeEnum.Manual: // case RecurringPaymentTypeEnum.Automatic: // paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); // break; // default: // throw new Exception("Not supported recurring payment type"); //} #endregion } else { //standard cart paymentService.ProcessPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); } } else { if (isRecurring) { paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); #region tempcode //var recurringPaymentType = paymentService.SupportRecurringPayments(transactionPayment.PaymentMethodId); //switch (recurringPaymentType) //{ // case RecurringPaymentTypeEnum.NotSupported: // throw new Exception("Recurring payments are not supported by selected payment method"); // case RecurringPaymentTypeEnum.Manual: //paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); // break; // case RecurringPaymentTypeEnum.Automatic: // //payment is processed on payment gateway site // break; // default: // throw new Exception("Not supported recurring payment type"); //} #endregion } else { throw new Exception("No recurring products"); } } //process transaction if (String.IsNullOrEmpty(processPaymentResult.Error)) { transactionPayment.TransactionIDRespone = processPaymentResult.AuthorizationTransactionCode.ToInt64(); InsertTransactionPayment(transactionPayment); #region tempcode //recurring orders //if (!transactionPayment.IsRecurringPayment) //{ // if (isRecurring) // { // //create recurring payment // var rp = new RecurringPayment() // { // InitialTransactionPaymentId = transactionPayment.TransactionPaymentId, // CycleLength = transactionPayment.RecurringCycleLength, // CyclePeriod = transactionPayment.RecurringCyclePeriod, // TotalCycles = transactionPayment.RecurringTotalCycles, // StartDate = DateTime.UtcNow, // IsActive = true, // Deleted = false, // CreatedOn = DateTime.UtcNow // }; // InsertRecurringPayment(rp); // var recurringPaymentType = paymentService.SupportRecurringPayments(transactionPayment.PaymentMethodId); // switch (recurringPaymentType) // { // case RecurringPaymentTypeEnum.NotSupported: // //not supported // break; // case RecurringPaymentTypeEnum.Manual: // //first payment // var rph = new RecurringPaymentHistory() // { // RecurringPaymentId = rp.RecurringPaymentId, // TransactionPaymentId = transactionPayment.TransactionPaymentId, // CreatedOn = DateTime.UtcNow // }; // InsertRecurringPaymentHistory(rph); // break; // case RecurringPaymentTypeEnum.Automatic: // //will be created later (process is automated) // break; // default: // break; // } // } //} #endregion } } catch (Exception exc) { processPaymentResult.Error = exc.Message; processPaymentResult.FullError = exc.ToString(); } if (!string.IsNullOrEmpty(processPaymentResult.Error)) outMessage = processPaymentResult.Error; else outMessage = processPaymentResult.AuthorizationTransactionCode; return outMessage; }
public bool IsReturnRequestAllowed(TransactionPayment transactionPayment) { throw new NotImplementedException(); }
/// <summary> /// Gets all TransactionPayments by Member identifier /// </summary> /// <param name="MemberId">Member identifier</param> /// <returns>TransactionPayment collection</returns> public List<TransactionPayment> GetTransactionPaymentsByMemberId(long memberId) { List<TransactionPayment> lstTransactionPayment = new List<TransactionPayment>(); List<Transaction> lstTransaction; using (var dba = new BetEXDataContainer()) { lstTransaction = dba.Transactions.Where(w => w.MemberId == memberId).ToList(); } if (lstTransaction != null && lstTransaction.Count > 0) { foreach (var transaction in lstTransaction) { TransactionPayment transactionPayment = new TransactionPayment(); transactionPayment.TransactionPaymentId = transaction.ID; transactionPayment.TransactionPaymentType = transaction.Type; transactionPayment.MemberId = transaction.MemberId; transactionPayment.MemberIP = transaction.MemberIP; transactionPayment.TransactionPaymentTotal = transaction.Amount; transactionPayment.TransactionPaymentStatusId = transaction.Status; transactionPayment.PaymentMethodId = transaction.PaymentMenthodID; transactionPayment.MemberEmail = transaction.MemberEmail; transactionPayment.TransactionIDRespone = transaction.ResponeTranId != null ? transaction.ResponeTranId.Value : 0; lstTransactionPayment.Add(transactionPayment); } } return lstTransactionPayment; }
/// <summary> /// Gets an TransactionPayment /// </summary> /// <param name="TransactionPaymentId">The TransactionPayment identifier</param> /// <returns>TransactionPayment</returns> public TransactionPayment GetTransactionPaymentById(long transactionPaymentId) { TransactionPayment transactionPayment = new TransactionPayment(); Transaction transaction; using (var dba = new BetEXDataContainer()) { transaction = dba.Transactions.Where(w => w.ID == transactionPaymentId).SingleOrDefault(); } if (transaction != null) { transactionPayment.TransactionPaymentId = transactionPaymentId; transactionPayment.TransactionPaymentType = transaction.Type; transactionPayment.MemberId = transaction.MemberId; transactionPayment.MemberIP = transaction.MemberIP; transactionPayment.TransactionPaymentTotal = transaction.Amount; transactionPayment.TransactionPaymentStatusId = transaction.Status; transactionPayment.PaymentMethodId = transaction.PaymentMenthodID; transactionPayment.TransactionIDRespone = transaction.ResponeTranId!=null? transaction.ResponeTranId.Value:0; transactionPayment.MemberEmail = transaction.MemberEmail; } return transactionPayment; }
/// <summary> /// Places an order /// </summary> /// <param name="transactionPayment">Payment info</param> /// <param name="customer">Customer</param> /// <param name="orderGuid">Order GUID to use</param> /// <param name="orderId">Order identifier</param> /// <returns>The error status, or String.Empty if no errors</returns> public string PlaceTransactionPayment(TransactionPayment transactionPayment, Guid transactionPaymentGuid, out long TransactionPaymentId) { TransactionPaymentId = 0; string outMessage = string.Empty; var processPaymentResult = new ProcessPaymentResult(); var customerService = IoC.Resolve <ICustomerService>(); var paymentService = IoC.Resolve <IPaymentService>(); try { if (!CommonHelper.IsValidEmail(transactionPayment.Customer.Email1)) { throw new Exception("Email is not valid"); } if (transactionPayment == null) { throw new ArgumentNullException("transactionPayment"); } //skip payment workflow if order total equals zero PaymentMethod paymentMethod = null; string paymentMethodName = string.Empty; paymentMethod = paymentService.GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) { throw new Exception("Payment method couldn't be loaded"); } paymentMethodName = paymentMethod.Name; //recurring or standard bool isRecurring = false; if (transactionPayment.TransactionPaymentType == 2) { isRecurring = true; } //process payment if (!transactionPayment.IsRecurringPayment) { if (isRecurring) { paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); #region tempcode //recurring cart //var recurringPaymentType = paymentService.SupportRecurringPayments(transactionPayment.PaymentMethodId); //switch (recurringPaymentType) //{ // case RecurringPaymentTypeEnum.NotSupported: // throw new Exception("Recurring payments are not supported by selected payment method"); // case RecurringPaymentTypeEnum.Manual: // case RecurringPaymentTypeEnum.Automatic: // paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); // break; // default: // throw new Exception("Not supported recurring payment type"); //} #endregion } else { //standard cart paymentService.ProcessPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); } } else { if (isRecurring) { paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); #region tempcode //var recurringPaymentType = paymentService.SupportRecurringPayments(transactionPayment.PaymentMethodId); //switch (recurringPaymentType) //{ // case RecurringPaymentTypeEnum.NotSupported: // throw new Exception("Recurring payments are not supported by selected payment method"); // case RecurringPaymentTypeEnum.Manual: //paymentService.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); // break; // case RecurringPaymentTypeEnum.Automatic: // //payment is processed on payment gateway site // break; // default: // throw new Exception("Not supported recurring payment type"); //} #endregion } else { throw new Exception("No recurring products"); } } //process transaction if (String.IsNullOrEmpty(processPaymentResult.Error)) { transactionPayment.TransactionIDRespone = processPaymentResult.AuthorizationTransactionCode.ToInt64(); InsertTransactionPayment(transactionPayment); #region tempcode //recurring orders //if (!transactionPayment.IsRecurringPayment) //{ // if (isRecurring) // { // //create recurring payment // var rp = new RecurringPayment() // { // InitialTransactionPaymentId = transactionPayment.TransactionPaymentId, // CycleLength = transactionPayment.RecurringCycleLength, // CyclePeriod = transactionPayment.RecurringCyclePeriod, // TotalCycles = transactionPayment.RecurringTotalCycles, // StartDate = DateTime.UtcNow, // IsActive = true, // Deleted = false, // CreatedOn = DateTime.UtcNow // }; // InsertRecurringPayment(rp); // var recurringPaymentType = paymentService.SupportRecurringPayments(transactionPayment.PaymentMethodId); // switch (recurringPaymentType) // { // case RecurringPaymentTypeEnum.NotSupported: // //not supported // break; // case RecurringPaymentTypeEnum.Manual: // //first payment // var rph = new RecurringPaymentHistory() // { // RecurringPaymentId = rp.RecurringPaymentId, // TransactionPaymentId = transactionPayment.TransactionPaymentId, // CreatedOn = DateTime.UtcNow // }; // InsertRecurringPaymentHistory(rph); // break; // case RecurringPaymentTypeEnum.Automatic: // //will be created later (process is automated) // break; // default: // break; // } // } //} #endregion } } catch (Exception exc) { processPaymentResult.Error = exc.Message; processPaymentResult.FullError = exc.ToString(); } if (!string.IsNullOrEmpty(processPaymentResult.Error)) { outMessage = processPaymentResult.Error; } else { outMessage = processPaymentResult.AuthorizationTransactionCode; } return(outMessage); }
public bool CanVoid(TransactionPayment transactionPayment) { throw new NotImplementedException(); }
public bool CanPartiallyRefundOffline(TransactionPayment transactionPayment, decimal amountToRefund) { throw new NotImplementedException(); }
public bool CanMarkTransactionPaymentAsAuthorized(TransactionPayment transactionPayment) { throw new NotImplementedException(); }
/// <summary> /// Process recurring payment /// </summary> /// <param name="paymentInfo">Payment info required for an betting processing</param> /// <param name="bettingGuid">Unique order identifier</param> /// <param name="processPaymentResult">Process payment result</param> public void ProcessRecurringPayment(TransactionPayment transactionPayment, Guid bettingGuid, ref ProcessPaymentResult processPaymentResult) { InitSettings(); MerchantAuthenticationType authentication = PopulateMerchantAuthentication(); if (!transactionPayment.IsRecurringPayment) { ARBSubscriptionType subscription = new ARBSubscriptionType(); AuthorizeNet.net.authorize.api.CreditCardType creditCard = new AuthorizeNet.net.authorize.api.CreditCardType(); subscription.name = bettingGuid.ToString(); creditCard.cardNumber = transactionPayment.PaymentMenthod.CreditCardNumber; creditCard.expirationDate = transactionPayment.PaymentMenthod.CardExpirationYear + "-" + transactionPayment.PaymentMenthod.CardExpirationMonth; // required format for API is YYYY-MM creditCard.cardCode = transactionPayment.PaymentMenthod.CardCvv2; subscription.payment = new PaymentType(); subscription.payment.Item = creditCard; subscription.billTo = new NameAndAddressType(); subscription.billTo.firstName = transactionPayment.Customer.FirstName; subscription.billTo.lastName = transactionPayment.Customer.LastName; subscription.billTo.address = transactionPayment.Customer.Address; subscription.billTo.city = transactionPayment.Customer.City; subscription.billTo.zip = transactionPayment.Customer.PostalCode; subscription.customer = new CustomerType(); subscription.customer.email = transactionPayment.Customer.Email1; subscription.customer.phoneNumber = transactionPayment.Customer.Telephone; subscription.order = new OrderType(); subscription.order.description =Constant.Payment.STORENAME+" "+ "Recurring payment"; // Create a subscription that is leng of specified occurrences and interval is amount of days ad runs subscription.paymentSchedule = new PaymentScheduleType(); DateTime dtNow = DateTime.UtcNow; subscription.paymentSchedule.startDate = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day); subscription.paymentSchedule.startDateSpecified = true; subscription.paymentSchedule.totalOccurrences = Convert.ToInt16(transactionPayment.RecurringTotalCycles); subscription.paymentSchedule.totalOccurrencesSpecified = true; subscription.amount = transactionPayment.TransactionPaymentTotal; subscription.amountSpecified = true; // Interval can't be updated once a subscription is created. subscription.paymentSchedule.interval = new PaymentScheduleTypeInterval(); switch (transactionPayment.RecurringCyclePeriod) { case (int)RecurringProductCyclePeriodEnum.Days: subscription.paymentSchedule.interval.length = Convert.ToInt16(transactionPayment.RecurringCycleLength); subscription.paymentSchedule.interval.unit = ARBSubscriptionUnitEnum.days; break; case (int)RecurringProductCyclePeriodEnum.Weeks: subscription.paymentSchedule.interval.length = Convert.ToInt16(transactionPayment.RecurringCycleLength * 7); subscription.paymentSchedule.interval.unit = ARBSubscriptionUnitEnum.days; break; case (int)RecurringProductCyclePeriodEnum.Months: subscription.paymentSchedule.interval.length = Convert.ToInt16(transactionPayment.RecurringCycleLength); subscription.paymentSchedule.interval.unit = ARBSubscriptionUnitEnum.months; break; case (int)RecurringProductCyclePeriodEnum.Years: subscription.paymentSchedule.interval.length = Convert.ToInt16(transactionPayment.RecurringCycleLength * 12); subscription.paymentSchedule.interval.unit = ARBSubscriptionUnitEnum.months; break; default: throw new Exception("Not supported cycle period"); } ARBCreateSubscriptionResponseType response = webService.ARBCreateSubscription(authentication, subscription); if (response.resultCode == MessageTypeEnum.Ok) { processPaymentResult.SubscriptionTransactionId = response.subscriptionId.ToString(); processPaymentResult.AuthorizationTransactionCode = response.resultCode.ToString(); processPaymentResult.AuthorizationTransactionResult = string.Format("Approved ({0}: {1})", response.resultCode.ToString(), response.subscriptionId.ToString()); } else { processPaymentResult.Error = string.Format("Error processing recurring payment. {0}", GetErrors(response)); processPaymentResult.FullError = string.Format("Error processing recurring payment. {0}", GetErrors(response)); } } }
/// <summary> /// Cancels recurring payment /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void CancelRecurringPayment(TransactionPayment transactionPayment, ref CancelPaymentResult cancelPaymentResult) { }
/// <summary> /// Places an TransactionPayment /// </summary> /// <param name="transactionPayment">Payment info</param> /// <param name="Member">Member</param> /// <param name="TransactionPaymentId">TransactionPayment identifier</param> /// <returns>The error status, or String.Empty if no errors</returns> public string PlaceTransactionPayment(TransactionPayment transactionPayment, out long TransactionPaymentId) { var TransactionGuid = Guid.NewGuid(); return(PlaceTransactionPayment(transactionPayment, TransactionGuid, out TransactionPaymentId)); }
/// <summary> /// Process payment /// </summary> /// <param name="paymentInfo">Payment info required for an betting processing</param> /// <param name="orderGuid">Unique order identifier</param> /// <param name="processPaymentResult">Process payment result</param> public void ProcessPayment(TransactionPayment betting, Guid orderGuid, ref ProcessPaymentResult processPaymentResult) { InitSettings(); TransactMode transactionMode = GetCurrentTransactionMode(); WebClient webClient = new WebClient(); NameValueCollection form = new NameValueCollection(); form.Add("x_login", loginID); form.Add("x_tran_key", transactionKey); //if (useSandBox) // form.Add("x_test_request", "TRUE"); //else form.Add("x_test_request", "FALSE"); form.Add("x_delim_data", "TRUE"); form.Add("x_delim_char", "|"); form.Add("x_encap_char", ""); form.Add("x_version", APIVersion); form.Add("x_relay_response", "FALSE"); form.Add("x_method", "CC"); form.Add("x_currency_code", Constant.Payment.CURRENCYCODE); if (transactionMode == TransactMode.Authorize) form.Add("x_type", "AUTH_ONLY"); else if (transactionMode == TransactMode.AuthorizeAndCapture) form.Add("x_type", "AUTH_CAPTURE"); else throw new Exception("Not supported transaction mode"); form.Add("x_amount",betting.TransactionPaymentTotal.ToString("0.00", CultureInfo.InvariantCulture)); form.Add("x_card_num", betting.PaymentMenthod.CreditCardNumber); form.Add("x_exp_date", betting.PaymentMenthod.CardExpirationMonth +"/"+ betting.PaymentMenthod.CardExpirationYear); form.Add("x_card_code", betting.PaymentMenthod.CardCvv2); form.Add("x_first_name", betting.Customer.FirstName); form.Add("x_last_name", betting.Customer.LastName); form.Add("x_address", betting.Customer.Address); form.Add("x_city", betting.Customer.City); form.Add("x_email_customer ", betting.Customer.Email1); //if (paymentInfo.BillingAddress.StateProvince != null) // form.Add("x_state", paymentInfo.BillingAddress.StateProvince.Abbreviation); form.Add("x_zip", betting.Customer.PostalCode); //if (paymentInfo.BillingAddress.Country != null) // form.Add("x_country", paymentInfo.BillingAddress.Country.TwoLetterIsoCode); //20 chars maximum form.Add("x_invoice_num", orderGuid.ToString().Substring(0, 20)); //form.Add("x_customer_ip", Request.UserHostAddress); string reply = null; Byte[] responseData = webClient.UploadValues(GetAuthorizeNETUrl(), form); reply = Encoding.ASCII.GetString(responseData); if (!String.IsNullOrEmpty(reply)) { string[] responseFields = reply.Split('|'); switch (responseFields[0]) { case "1": processPaymentResult.AuthorizationTransactionCode = string.Format("{0},{1}", responseFields[6], responseFields[4]); processPaymentResult.AuthorizationTransactionResult = string.Format("Approved ({0}: {1})", responseFields[2], responseFields[3]); processPaymentResult.AVSResult = responseFields[5]; //responseFields[38]; if (transactionMode == TransactMode.Authorize) { processPaymentResult.PaymentStatus = PaymentStatusEnum.Authorized; } else { processPaymentResult.PaymentStatus = PaymentStatusEnum.Paid; } break; case "2": processPaymentResult.Error = string.Format("Declined ({0}: {1})", responseFields[2], responseFields[3]); processPaymentResult.FullError = string.Format("Declined ({0}: {1})", responseFields[2], responseFields[3]); break; case "3": processPaymentResult.Error = string.Format("Error: {0}", reply); processPaymentResult.FullError = string.Format("Error: {0}", reply); break; } } else { processPaymentResult.Error = "Authorize.NET unknown error"; processPaymentResult.FullError = "Authorize.NET unknown error"; } }
/// <summary> /// Captures payment /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <param name="processPaymentResult">Process payment result</param> public void Capture(TransactionPayment transactionPayment, ref ProcessPaymentResult processPaymentResult) { throw new Exception("Capture method not supported"); }
/// <summary> /// Voids payment /// </summary> /// <param name="betting">betting</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void Void(TransactionPayment transactionPayment, ref CancelPaymentResult cancelPaymentResult) { throw new Exception("Void method not supported"); }
/// <summary> /// Process payment /// </summary> /// <param name="transactionPayment">transactionPayment required for an betting processing</param> /// <param name="bettingGuid">Unique betting identifier</param> /// <param name="processPaymentResult">Process payment result</param> public void ProcessPayment(TransactionPayment transactionPayment,Guid bettingGuid, ref ProcessPaymentResult processPaymentResult) { #region tempcode //WebClient webClient = new WebClient(); //NameValueCollection form = new NameValueCollection(); //form.Add("MerchID", loginID); //form.Add("Pass", loginPass); //form.Add("TrType", "FALSE"); //form.Add("CardNum", transactionPayment.PaymentMenthod.CreditCardNumber); //form.Add("CVV2", transactionPayment.PaymentMenthod.CardCvv2); //form.Add("ExpDay", "31"); //form.Add("ExpMonth", transactionPayment.PaymentMenthod.CardExpirationMonth); //form.Add("ExpYear", transactionPayment.PaymentMenthod.CardExpirationYear); //form.Add("CardHName", transactionPayment.PaymentMenthod.NameOnCard); //form.Add("Amount", transactionPayment.TransactionPaymentTotal.ToString("0.00", CultureInfo.InvariantCulture)); //form.Add("CurrencyCode", Constant.Payment.CURRENCYCODE); //form.Add("Addr", transactionPayment.Customer.Address); //form.Add("PostCode",transactionPayment.Customer.PostalCode); //form.Add("TransID", transactionPayment.TransactionPaymentId.ToString()); //form.Add("UserIP",CommonHelper.GetRequestIP()); //form.Add("UDF1", "Test 1"); //form.Add("UDF2", "Test 1"); //form.Add("UDF3", "Test 1"); //string reply = null; //Byte[] responseData = webClient.UploadValues(GetApcPaymentUrl(), form); //reply = Encoding.ASCII.GetString(responseData); #endregion int transactionMode = (int)TransactMode.Authorization; string reply = webService.DoTransaction(loginID, loginPass, transactionMode.ToString(), transactionPayment.PaymentMenthod.CreditCardNumber, transactionPayment.PaymentMenthod.CardCvv2, "", transactionPayment.PaymentMenthod.CardExpirationMonth, transactionPayment.PaymentMenthod.CardExpirationYear, transactionPayment.PaymentMenthod.NameOnCard, transactionPayment.TransactionPaymentTotal.ToString("0.00", CultureInfo.InvariantCulture), Constant.Payment.CURRENCYCODENUMBER, transactionPayment.Customer.Address, transactionPayment.Customer.PostalCode, transactionPayment.TransactionPaymentId.ToString(), CommonHelper.GetRequestIP(), "Authorization 1", "Authorization 2", "Authorization 3"); if (!String.IsNullOrEmpty(reply)) { reply=reply.Replace("||","|"); string[] responseFields = reply.Split('|'); switch (responseFields[0]) { case "APPROVED": processPaymentResult.AuthorizationTransactionCode = string.Format("{0}", responseFields[1]); processPaymentResult.AuthorizationTransactionResult = string.Format("Approved ({0}: {1})", responseFields[2], responseFields[11]); processPaymentResult.AVSResult = responseFields[0]; //responseFields[38]; if (transactionMode == (int)TransactMode.Authorization) { processPaymentResult.PaymentStatus = PaymentStatusEnum.Paid; } else { processPaymentResult.PaymentStatus = PaymentStatusEnum.Authorized; } break; default: processPaymentResult.Error = string.Format("Declined {0}", responseFields[0] + " " + transactionPayment.PaymentMenthod.CreditCardNumber); processPaymentResult.FullError = string.Format("Declined {0}", responseFields[0] + " " + transactionPayment.PaymentMenthod.CreditCardNumber); break; } } else { processPaymentResult.Error = "Unknown error"; processPaymentResult.FullError = "Unknown error"; } }
/// <summary> /// Gets last TransactionPayment by userID /// </summary> /// <param name="UserId">The UserId identifier</param> /// <returns>TransactionPayment</returns> public TransactionPayment GetTransactionPaymentByUserId(long UserId) { TransactionPayment transactionPayment = new TransactionPayment(); Transaction transaction=new Transaction(); using (var dba = new BetEXDataContainer()) { byte type = (byte)1; var listTransaction = dba.Transactions.Where(w => w.MemberId == UserId && w.Type == type).OrderByDescending(z=>z.Amount).ToList(); if (listTransaction != null) { transaction = listTransaction[0]; } } if (transaction != null) { transactionPayment.TransactionPaymentId = transaction.ID; transactionPayment.TransactionPaymentType = transaction.Type; transactionPayment.MemberId = transaction.MemberId; transactionPayment.MemberIP = transaction.MemberIP; transactionPayment.TransactionIDRespone = transaction.ResponeTranId!=null?transaction.ResponeTranId.Value:0; transactionPayment.TransactionPaymentTotal = transaction.Amount; transactionPayment.TransactionPaymentStatusId = transaction.Status; transactionPayment.PaymentMethodId = transaction.PaymentMenthodID; transactionPayment.MemberEmail = transaction.MemberEmail; } return transactionPayment; }
/// <summary> /// Process recurring payment /// </summary> /// <param name="transactionPayment">transactionPayment required for an betting processing</param> /// <param name="bettingGuid">Unique betting identifier</param> /// <param name="processPaymentResult">Process payment result</param> public void ProcessRecurringPayment(TransactionPayment transactionPayment, Guid bettingGuid, ref ProcessPaymentResult processPaymentResult) { int transactionMode = (int)TransactMode.OriginalCredit; string reply = webService.DoTransaction(loginID, loginPass, transactionMode.ToString(), transactionPayment.PaymentMenthod.CreditCardNumber, transactionPayment.PaymentMenthod.CardCvv2, "", transactionPayment.PaymentMenthod.CardExpirationMonth, transactionPayment.PaymentMenthod.CardExpirationYear, transactionPayment.PaymentMenthod.NameOnCard, transactionPayment.TransactionPaymentTotal.ToString("0.00", CultureInfo.InvariantCulture), Constant.Payment.CURRENCYCODENUMBER, transactionPayment.Customer.Address, transactionPayment.Customer.PostalCode,transactionPayment.TransactionIDRespone.ToString(), //transactionPayment.TransactionPaymentId.ToString(), CommonHelper.GetRequestIP(), "Authorization 1", "Authorization 2", "Authorization 3"); if (!String.IsNullOrEmpty(reply)) { reply = reply.Replace("||", "|"); string[] responseFields = reply.Split('|'); switch (responseFields[0]) { case "CAPTURED": processPaymentResult.AuthorizationTransactionCode = string.Format("{0}", responseFields[1]); processPaymentResult.AuthorizationTransactionResult = string.Format("Approved ({0}: {1})", responseFields[2], responseFields[11]); processPaymentResult.AVSResult = responseFields[0]; //responseFields[38]; if (transactionMode == (int)TransactMode.Authorization) { processPaymentResult.PaymentStatus = PaymentStatusEnum.Paid; } else { processPaymentResult.PaymentStatus = PaymentStatusEnum.Authorized; } break; default: processPaymentResult.Error = string.Format("Declined {0}", responseFields[0]); processPaymentResult.FullError = string.Format("Declined {0}", responseFields[0]); break; } } else { processPaymentResult.Error = "Unknown error"; processPaymentResult.FullError = "Unknown error"; } }
/// <summary> /// Inserts an TransactionPayment /// </summary> /// <param name="TransactionPayment">TransactionPayment</param> public void InsertTransactionPayment(TransactionPayment transactionPayment) { if (transactionPayment == null) throw new ArgumentNullException("transactionPayment"); Transaction transaction = new Transaction(); transaction.Type = transactionPayment.TransactionPaymentType; transaction.Amount = transactionPayment.TransactionPaymentTotal; transaction.Status = transactionPayment.TransactionPaymentStatusId; transaction.MemberId = transactionPayment.MemberId; transaction.MemberIP = transactionPayment.MemberIP; transaction.MemberEmail = transactionPayment.MemberEmail; transaction.ResponeTranId = transactionPayment.TransactionIDRespone; transaction.PaymentMenthodID = transactionPayment.PaymentMethodId; transaction.AddedDate = DateTime.Now; transaction.ModifyDate = DateTime.Now; _context.AddToTransactions(transaction); _context.SaveChanges(); }
/// <summary> /// Post process payment (payment gateways that require redirecting) /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <returns>The error status, or String.Empty if no errors</returns> public string PostProcessPayment(TransactionPayment transactionPayment) { var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) throw new Exception("Payment method couldn't be loaded"); var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; return iPaymentMethod.PostProcessPayment(transactionPayment); }
/// <summary> /// Places an TransactionPayment /// </summary> /// <param name="transactionPayment">Payment info</param> /// <param name="Member">Member</param> /// <param name="TransactionPaymentId">TransactionPayment identifier</param> /// <returns>The error status, or String.Empty if no errors</returns> public string PlaceTransactionPayment(TransactionPayment transactionPayment, out long TransactionPaymentId) { var TransactionGuid = Guid.NewGuid(); return PlaceTransactionPayment(transactionPayment, TransactionGuid, out TransactionPaymentId); }
/// <summary> /// Process recurring payments /// </summary> /// <param name="transactionPayment">transactionPayment required for an order processing</param> /// <param name="customer">Customer</param> /// <param name="orderGuid">Unique order identifier</param> /// <param name="processPaymentResult">Process payment result</param> public void ProcessRecurringPayment(TransactionPayment transactionPayment, Guid transactionPaymentGuid, ref ProcessPaymentResult processPaymentResult) { if (transactionPayment.TransactionPaymentTotal == decimal.Zero) { processPaymentResult.Error = string.Empty; processPaymentResult.FullError = string.Empty; processPaymentResult.PaymentStatus = PaymentStatusEnum.Paid; } else { var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) throw new Exception("Payment method couldn't be loaded"); var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; iPaymentMethod.ProcessRecurringPayment(transactionPayment, transactionPaymentGuid, ref processPaymentResult); } }
/// <summary> /// Voids payment /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void Void(TransactionPayment transactionPayment, ref CancelPaymentResult cancelPaymentResult) { var paymentMethod = GetPaymentMethodById(transactionPayment.PaymentMethodId); if (paymentMethod == null) throw new Exception("Payment method couldn't be loaded"); var iPaymentMethod = Activator.CreateInstance(Type.GetType(paymentMethod.ClassName)) as IPaymentMethod; iPaymentMethod.Void(transactionPayment, ref cancelPaymentResult); }
public ActionResult Deposit(FormCollection collection) { string message = string.Empty; long transactionPaymentId = 0; long memberId = SessionManager.USER_ID; TransactionPayment transactionPayment = new TransactionPayment(); transactionPayment.TransactionPaymentType = (int)Constant.TransactionType.DEPOSIT; transactionPayment.MemberId = memberId; transactionPayment.MemberIP = Request.UserHostAddress; transactionPayment.MemberEmail = transactionPayment.Customer.Email1; transactionPayment.TransactionPaymentTotal = collection["Amount"].ToDecimal(); transactionPayment.TransactionPaymentStatusId = (int)PaymentStatusEnum.Authorized; transactionPayment.PaymentMethodId = 1; message = IoC.Resolve<ITransactionPaymentService>().PlaceTransactionPayment(transactionPayment, out transactionPaymentId); ViewBag.Message = message; return View(); }
/// <summary> /// Cancels recurring payment /// </summary> /// <param name="transactionPayment">transactionPayment</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void CancelRecurringPayment(TransactionPayment transactionPayment, ref CancelPaymentResult cancelPaymentResult) { InitSettings(); MerchantAuthenticationType authentication = PopulateMerchantAuthentication(); long subscriptionID = 0; long.TryParse(cancelPaymentResult.SubscriptionTransactionId, out subscriptionID); ARBCancelSubscriptionResponseType response = webService.ARBCancelSubscription(authentication, subscriptionID); if (response.resultCode == MessageTypeEnum.Ok) { //ok } else { cancelPaymentResult.Error = "Error cancelling subscription, please contact customer support. " + GetErrors(response); cancelPaymentResult.FullError = "Error cancelling subscription, please contact customer support. " + GetErrors(response); } }
public ActionResult Withdraw(FormCollection collection) { string message = string.Empty; long memberId = SessionManager.USER_ID; long transactionPaymentId = 0; if (IoC.Resolve<ITransactionPaymentService>().GetTransactionByUserId(memberId) != null) { message = Constant.Messagage.NOTRANSACTION; } else { TransactionPayment transactionPayment = new TransactionPayment(); transactionPayment = IoC.Resolve<ITransactionPaymentService>().GetTransactionPaymentByUserId(memberId); transactionPayment.TransactionPaymentType = (int)Constant.TransactionType.WITHDRAW; transactionPayment.MemberIP = Request.UserHostAddress; transactionPayment.RecurringTotalCycles = 1; transactionPayment.RecurringCycleLength = 7; message = IoC.Resolve<ITransactionPaymentService>().PlaceTransactionPayment(transactionPayment, out transactionPaymentId); } ViewBag.Message = message; return View(); }
/// <summary> /// Captures payment /// </summary> /// <param name="betting">betting</param> /// <param name="processPaymentResult">Process payment result</param> public void Capture(TransactionPayment transactionPayment, ref ProcessPaymentResult processPaymentResult) { InitSettings(); WebClient webClient = new WebClient(); NameValueCollection form = new NameValueCollection(); form.Add("x_login", loginID); form.Add("x_tran_key", transactionKey); if (useSandBox) form.Add("x_test_request", "TRUE"); else form.Add("x_test_request", "FALSE"); form.Add("x_delim_data", "TRUE"); form.Add("x_delim_char", "|"); form.Add("x_encap_char", ""); form.Add("x_version", APIVersion); form.Add("x_relay_response", "FALSE"); form.Add("x_method", "CC"); form.Add("x_currency_code", Constant.Payment.CURRENCYCODE); form.Add("x_type", "PRIOR_AUTH_CAPTURE"); form.Add("x_amount", transactionPayment.TransactionPaymentTotal.ToString("0.00", CultureInfo.InvariantCulture)); string[] codes = processPaymentResult.AuthorizationTransactionCode.Split(','); //x_trans_id. When x_test_request (sandbox) is set to a positive response, //or when Test mode is enabled on the payment gateway, this value will be "0". form.Add("x_trans_id", codes[0]); string reply = null; Byte[] responseData = webClient.UploadValues(GetAuthorizeNETUrl(), form); reply = Encoding.ASCII.GetString(responseData); if (!String.IsNullOrEmpty(reply)) { string[] responseFields = reply.Split('|'); switch (responseFields[0]) { case "1": processPaymentResult.AuthorizationTransactionCode = string.Format("{0},{1}", responseFields[6], responseFields[4]); processPaymentResult.AuthorizationTransactionResult = string.Format("Approved ({0}: {1})", responseFields[2], responseFields[3]); processPaymentResult.AVSResult = responseFields[5]; //responseFields[38]; processPaymentResult.PaymentStatus = PaymentStatusEnum.Paid; break; case "2": processPaymentResult.Error = string.Format("Declined ({0}: {1})", responseFields[2], responseFields[3]); processPaymentResult.FullError = string.Format("Declined ({0}: {1})", responseFields[2], responseFields[3]); break; case "3": processPaymentResult.Error = string.Format("Error: {0}", reply); processPaymentResult.FullError = string.Format("Error: {0}", reply); break; } } else { processPaymentResult.Error = "Authorize.NET unknown error"; processPaymentResult.FullError = "Authorize.NET unknown error"; } }
/// <summary> /// Process recurring payment /// </summary> /// <param name="transactionPayment">transactionPayment required for an betting processing</param> /// <param name="bettingGuid">Unique betting identifier</param> /// <param name="processPaymentResult">Process payment result</param> public void ProcessRecurringPayment(TransactionPayment transactionPayment, Guid bettingGuid, ref ProcessPaymentResult processPaymentResult) { throw new Exception("Recurring payments not supported"); }
/// <summary> /// Post process payment (payment gateways that require redirecting) /// </summary> /// <param name="betting">betting</param> /// <returns>The error status, or String.Empty if no errors</returns> public string PostProcessPayment(TransactionPayment transaction) { return string.Empty; }