public Retail() { HpsServicesConfig config = new HpsServicesConfig { SecretApiKey = "skapi_cert_MaePAQBr-1QAqjfckFC8FTbRTT120bVQUlfVOjgCBw" }; batchService = new HpsBatchService(config); creditService = new HpsFluentCreditService(config, true); debitService = new HpsFluentDebitService(config, true); ebtService = new HpsFluentEbtService(config, true); giftService = new HpsFluentGiftCardService(config, true); }
/// <summary> /// Voids a payment /// </summary> /// <param name="voidPaymentRequest">Request</param> /// <returns>Result</returns> public VoidPaymentResult Void(VoidPaymentRequest voidPaymentRequest) { var result = new VoidPaymentResult(); var config = new HpsServicesConfig(); config.SecretApiKey = _secureSubmitPaymentSettings.SecretApiKey; config.DeveloperId = "002914"; config.VersionNumber = "1513"; var creditService = new HpsCreditService(config); try { if (string.IsNullOrEmpty(voidPaymentRequest.Order.CaptureTransactionId)) { creditService.Void(Convert.ToInt32(voidPaymentRequest.Order.AuthorizationTransactionId)); } else { creditService.Void(Convert.ToInt32(voidPaymentRequest.Order.CaptureTransactionId)); } result.NewPaymentStatus = PaymentStatus.Voided; } catch (HpsException ex) { result.AddError(ex.Message); } return result; }
/// <summary> /// Refunds a payment /// </summary> /// <param name="refundPaymentRequest">Request</param> /// <returns>Result</returns> public RefundPaymentResult Refund(RefundPaymentRequest refundPaymentRequest) { var result = new RefundPaymentResult(); var config = new HpsServicesConfig(); config.SecretApiKey = _secureSubmitPaymentSettings.SecretApiKey; config.DeveloperId = "002914"; config.VersionNumber = "1513"; var creditService = new HpsCreditService(config); try { creditService.Refund( refundPaymentRequest.AmountToRefund, _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode, refundPaymentRequest.Order.CaptureTransactionId); var isOrderFullyRefunded = (refundPaymentRequest.AmountToRefund + refundPaymentRequest.Order.RefundedAmount == refundPaymentRequest.Order.OrderTotal); result.NewPaymentStatus = isOrderFullyRefunded ? PaymentStatus.Refunded : PaymentStatus.PartiallyRefunded; } catch (HpsException ex) { result.AddError(ex.Message); } return result; }
/// <summary> /// Process a payment /// </summary> /// <param name="processPaymentRequest">Payment info required for an order processing</param> /// <returns>Process payment result</returns> public ProcessPaymentResult ProcessPayment(ProcessPaymentRequest processPaymentRequest) { var result = new ProcessPaymentResult(); var token = (string)processPaymentRequest.CustomValues["token_value"]; var config = new HpsServicesConfig(); config.SecretApiKey = _secureSubmitPaymentSettings.SecretApiKey; config.DeveloperId = "002914"; config.VersionNumber = "1513"; var creditService = new HpsCreditService(config); var customer = _customerService.GetCustomerById(processPaymentRequest.CustomerId); var cardHolder = new HpsCardHolder(); cardHolder.Address = new HpsAddress(); cardHolder.Address.Address = customer.BillingAddress.Address1; cardHolder.Address.City = customer.BillingAddress.City; cardHolder.Address.State = customer.BillingAddress.StateProvince.Abbreviation; cardHolder.Address.Zip = customer.BillingAddress.ZipPostalCode.Replace("-", ""); cardHolder.Address.Country = customer.BillingAddress.Country.ThreeLetterIsoCode; HpsAuthorization response = null; try { if (_secureSubmitPaymentSettings.TransactMode == TransactMode.Authorize) { // auth response = creditService.Authorize( processPaymentRequest.OrderTotal, _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode, token, cardHolder, false); result.NewPaymentStatus = PaymentStatus.Authorized; result.AuthorizationTransactionCode = response.AuthorizationCode; result.AuthorizationTransactionId = response.TransactionId.ToString(); } else { //capture response = creditService.Charge( processPaymentRequest.OrderTotal, _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode, token, cardHolder, false); result.NewPaymentStatus = PaymentStatus.Paid; result.CaptureTransactionId = response.TransactionId.ToString(); result.CaptureTransactionResult = response.ResponseText; } } catch (HpsException ex) { result.AddError(ex.Message); } return result; }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); var config = new HpsServicesConfig(); config.SecretApiKey = _secureSubmitPaymentSettings.SecretApiKey; config.DeveloperId = "002914"; config.VersionNumber = "1513"; var creditService = new HpsCreditService(config); try { var response = creditService.Capture(Convert.ToInt32(capturePaymentRequest.Order.AuthorizationTransactionId), capturePaymentRequest.Order.OrderTotal); result.NewPaymentStatus = PaymentStatus.Paid; result.CaptureTransactionId = response.TransactionId.ToString(); result.CaptureTransactionResult = response.ResponseText; } catch (HpsException ex) { result.AddError(ex.Message); } return result; }
private void ProcessPayment() { var details = GetOrderDetails(); var config = new HpsServicesConfig { // The following variables will be provided to you during certification SecretApiKey = "skapi_cert_MYl2AQAowiQAbLp5JesGKh7QFkcizOP2jcX9BrEMqQ", VersionNumber = "0000", DeveloperId = "000000" }; var chargeService = new HpsCreditService(config); var numbers = new Regex("^[0-9]+$"); var address = new HpsAddress { Address = details.Address, City = details.City, State = details.State, Country = "United States", Zip = numbers.Match(details.Zip ?? string.Empty).ToString() }; var validCardHolder = new HpsCardHolder { FirstName = details.FirstName, LastName = details.LastName, Address = address, Phone = numbers.Match(details.PhoneNumber ?? string.Empty).ToString() }; var suToken = new HpsTokenData { TokenValue = details.Token_value }; try { var authResponse = chargeService.Charge(15.15m, "usd", suToken.TokenValue, validCardHolder); SendEmail(); Response.Write("<h1>Success!</h1><p>Thank you, " + details.FirstName + ", for your order of $15.15.</p>" + "Transaction Id: " + authResponse.TransactionId); } catch (HpsInvalidRequestException e) { // handle error for amount less than zero dollars Response.Write("<h3>Error</h3>" + "<strong>amount less than zero dollars: " + e.Message + "</strong>"); } catch (HpsAuthenticationException e) { // handle errors related to your HpsServiceConfig Response.Write("<h3>Error</h3>" + "<strong>Bad Config: " + e.Message + "</strong>"); } catch (HpsCreditException e) { // handle card-related exceptions: card declined, processing error, etc Response.Write("<h3>Error</h3>" + "<strong>card declined, processing error, etc: " + e.Message + "</strong>"); } catch (HpsGatewayException e) { // handle gateway-related exceptions: invalid cc number, gateway-timeout, etc Response.Write("<h3>Error</h3>" + "<strong>invalid cc number, gateway-timeout, etc: " + e.Message + "</strong>"); } }
public ActionResult ProcessPayment(OrderDetails details) { var config = new HpsServicesConfig { SecretApiKey = "skapi_cert_MYl2AQAowiQAbLp5JesGKh7QFkcizOP2jcX9BrEMqQ", // The following variables will be provided to you during certification VersionNumber = "0000", DeveloperId = "000000" }; var chargeService = new HpsCreditService(config); var numbers = new Regex("^[0-9]+$"); var address = new HpsAddress { Address = details.Address, City = details.City, State = details.State, Country = "United States", Zip = numbers.Match(details.Zip ?? string.Empty).ToString() }; var validCardHolder = new HpsCardHolder { FirstName = details.FirstName, LastName = details.LastName, Address = address, Phone = numbers.Match(details.PhoneNumber ?? string.Empty).ToString() }; var suToken = new HpsTokenData { TokenValue = details.Token_value }; try { var authResponse = chargeService.Charge(15.15m, "usd", suToken.TokenValue, validCardHolder); SendEmail(); return View("Success", new SuccessModel { FirstName = details.FirstName, TransactionId = authResponse.TransactionId }); } catch (HpsInvalidRequestException e) { // handle error for amount less than zero dollars return View("Error", model: "amount less than zero dollars: " + e.Message); } catch (HpsAuthenticationException e) { // handle errors related to your HpsServiceConfig return View("Error", model: "Bad Config: " + e.Message); } catch (HpsCreditException e) { // handle card-related exceptions: card declined, processing error, etc return View("Error", model: "card declined, processing error, etc: " + e.Message); } catch (HpsGatewayException e) { // handle gateway-related exceptions: invalid cc number, gateway-timeout, etc return View("Error", model: "invalid cc number, gateway-timeout, etc: " + e.Message); } }