private string BuildResponseDebug(CreditCardResponse response) { StringBuilder sb = new StringBuilder(); sb.Append("\r\nParadata PayGateway.CreditCardResponse Object\r\n"); sb.Append("AuthorizedAmount=" + response.getAuthorizedAmount() + "\r\n"); sb.Append("AvsCode=" + response.getAvsCode() + "\r\n"); sb.Append("BankApprovalCode=" + response.getBankApprovalCode() + "\r\n"); sb.Append("BankTransactionId=" + response.getBankTransactionId() + "\r\n"); sb.Append("BatchId=" + response.getBatchId() + "\r\n"); sb.Append("CapturedAmount=" + response.getCapturedAmount() + "\r\n"); sb.Append("CaptureReferenceId=" + response.getCaptureReferenceId() + "\r\n"); sb.Append("CreditCardVerificationResponse=" + response.getCreditCardVerificationResponse() + "\r\n"); sb.Append("CreditedAmount=" + response.getCreditedAmount() + "\r\n"); sb.Append("OrderId=" + response.getOrderId() + "\r\n"); sb.Append("OriginalAuthorizedAmount=" + response.getOriginalAuthorizedAmount() + "\r\n"); sb.Append("PayerAuthenticationResponse=" + response.getPayerAuthenticationResponse() + "\r\n"); sb.Append("ReferenceId=" + response.getReferenceId() + "\r\n"); sb.Append("ResponseCode=" + response.getResponseCode() + "\r\n"); sb.Append("ResponseCodeText=" + response.getResponseCodeText() + "\r\n"); sb.Append("RetryRecommended=" + response.getRetryRecommended() + "\r\n"); sb.Append("SecondaryResponseCode=" + response.getSecondaryResponseCode() + "\r\n"); sb.Append("State=" + response.getState() + "\r\n"); sb.Append("TimeStamp=" + response.getTimeStamp() + "\r\n"); return(sb.ToString()); }
public override Transaction DoVoid(VoidTransactionRequest voidRequest) { VerifyStatus(); Payment payment = voidRequest.Payment; if (payment == null) { throw new ArgumentNullException("request.Payment"); } Transaction authorizeTransaction = voidRequest.AuthorizeTransaction; if (authorizeTransaction == null) { throw new ArgumentNullException("transactionRequest.AuthorizeTransaction"); } CreditCardRequest request = InitializeVoidRequest(payment, authorizeTransaction); CreditCardResponse response = null; //RECORD REQUEST if (this.UseDebugMode) { string reqDebug = BuildRequestDebug(request); this.RecordCommunication(this.Name, CommunicationDirection.Send, reqDebug, null); } //TODO : Test mode is not supported. if (this.UseTestMode) { response = (CreditCardResponse)TransactionClient.doTransaction(request, this.AccountToken); } else { response = (CreditCardResponse)TransactionClient.doTransaction(request, this.AccountToken); } if (response != null) { //RECORD RESPONSE if (this.UseDebugMode) { string respDebug = BuildResponseDebug(response); this.RecordCommunication(this.Name, CommunicationDirection.Receive, respDebug, null); } return(ProcessResponse(payment, response, TransactionType.Void, voidRequest.Amount)); } else { throw new Exception("Operation Failed, Response is null."); } }
/// <summary> /// Deletes the Credit Card. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public CreditCardResponse DeleteCreditCard(CreditCardRequest request) { base.Validate <CreditCard, CreditCardRequest>(request, ValidatorContext.DELETE); AbstractRestRequestWithAlternativeDataStrategy <CreditCardRequest, CreditCard, SdkError, CommonResponse> requestStrategy = new DeleteCreditCardStrategy(request); requestStrategy.SendRequest(); CreditCardResponse response = new CreditCardResponse(); response.CreditCard = requestStrategy.RestResponse.Data; response.Error = requestStrategy.RestResponse.Error; return((CreditCardResponse)PrepareComposeResponse(response)); }
/// <summary> /// Gets the Credit Card. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public CreditCardResponse GetCreditCard(CreditCardRequest request) { base.Validate <CreditCard, CreditCardRequest>(request, ValidatorContext.GET); AbstractRestRequestStrategy <CreditCardRequest, CreditCard, SdkError> requestStrategy = new GetCreditCardStrategy(request); requestStrategy.SendRequest(); CreditCardResponse response = new CreditCardResponse(); response.CreditCard = requestStrategy.RestResponse.Data; response.Error = requestStrategy.RestResponse.Error; return((CreditCardResponse)PrepareComposeResponse(response)); }
public async Task <ActionResult> CreateToken([FromBody] CreditCardRequest creditCard) { try { var registrationDate = DateTime.UtcNow; var token = await _tokenService.CreateToken(creditCard.CardNumber, creditCard.CVV, registrationDate, false); var response = new CreditCardResponse { RegistrationDate = registrationDate, Token = token }; return(Ok(response)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
private long AssertCanGetCreditCardList() { var client = new RestClient($"{_serverOptions.BaseUrl}/{Resource}/"); var request = new RestRequest(Method.GET); request.AddHeader("Accept", "application/json"); request.AddHeader("Authorization", $"{_token.token_type} {_token.access_token}"); IRestResponse response = client.Execute(request); Assert.Equal(HttpStatusCode.OK, response.StatusCode); var list = JsonConvert.DeserializeObject <List <CreditCardResponse> >(response.Content); Assert.NotEmpty(list); _createdCard = list.Find( c => c.Name == _cardName && c.CardNumber == _cardNumber); Assert.NotNull(_createdCard); return(_createdCard.Id); }
private Transaction ProcessResponse(Payment payment, CreditCardResponse response, TransactionType transactionType, LSDecimal transAmount) { //CREATE THE TRANSACTION OBJECT Transaction transaction = new Transaction(); transaction.PaymentGatewayId = this.PaymentGatewayId; transaction.TransactionType = transactionType; transaction.Amount = transAmount; if (response.getResponseCode() != 1) { transaction.TransactionStatus = TransactionStatus.Failed; transaction.ResponseCode = response.getResponseCode().ToString(); transaction.ResponseMessage = response.getResponseCodeText(); } else { transaction.TransactionStatus = TransactionStatus.Successful; transaction.ProviderTransactionId = response.getReferenceId(); // getBankTransactionId(); transaction.TransactionDate = response.getTimeStamp(); // DateTime.UtcNow; transaction.ResponseCode = response.getResponseCode().ToString(); transaction.ResponseMessage = response.getResponseCodeText(); transaction.AuthorizationCode = response.getBankApprovalCode(); transaction.AVSResultCode = response.getAvsCode(); //if (transaction.AVSResultCode.Equals("P") || transaction.AVSResultCode.Equals("B")) transaction.AVSResultCode = "U"; transaction.CVVResultCode = response.getCreditCardVerificationResponse(); //payment.ReferenceNumber = response.getReferenceId(); HttpContext context = HttpContext.Current; if (context != null) { transaction.RemoteIP = context.Request.ServerVariables["REMOTE_ADDR"]; transaction.Referrer = context.Request.ServerVariables["HTTP_REFERER"]; } } return(transaction); }
public PayPros Initiate(PayPros payment, string cardNumber) { #region CREATE REQUEST CreditCardRequest request = new CreditCardRequest(); try { request.setCreditCardNumber(cardNumber); if (!string.IsNullOrEmpty(payment.CCV)) { request.setCreditCardVerificationNumber(payment.CCV); } request.setExpireMonth(payment.CCExpireMonth); request.setExpireYear(payment.CCExpireYear); request.setChargeType(CreditCardRequest.SALE); request.setPurchaseOrderNumber(payment.PaymentAccount); request.setChargeTotal((double)payment.PaymentAmount); request.setPartialApprovalFlag(false); if (!string.IsNullOrEmpty(payment.RequestingOrigin)) { request.setCustomerIpAddress(payment.RequestingOrigin); } switch (_account) { case PaymentAccounts.UBO: request.setIndustry("DIRECT_MARKETING"); break; case PaymentAccounts.Judicial: break; default: break; } switch (_method) { case PaymentMethods.Web: request.setTransactionConditionCode(5); break; case PaymentMethods.Phone: request.setTransactionConditionCode(2); break; default: break; } } catch (Exception) { throw new ArgumentException("Unable to create request"); } #endregion #region PROCESS REQUEST string payprosToken = (payment.IsTest ? testTokens[_account] : accountTokens[_account]); CreditCardResponse response = (CreditCardResponse)TransactionClient.doTransaction(request, payprosToken); payment.responseCode = (payment.IsTest ? (-1 * response.getResponseCode()) : response.getResponseCode());//flip sign of response code for test payments (keeps it from being written for processing) payment.responseText = response.getResponseCodeText(); payment.retryRecommended = response.getRetryRecommended(); payment.timestamp = response.getTimeStamp(); #endregion #region RECORD RESPONSE double authorizedAmount = 0; if (double.TryParse(response.getAuthorizedAmount(), out authorizedAmount)) { payment.PaymentAmount = (decimal)authorizedAmount; } long orderID; if (long.TryParse(response.getOrderId(), out orderID)) { payment.orderID = orderID; } long batchID; if (long.TryParse(response.getBatchId(), out batchID)) { payment.batchID = batchID; } long bankApprovalCode; if (long.TryParse(response.getBankApprovalCode(), out bankApprovalCode)) { payment.bankApprovalCode = bankApprovalCode; } long bankTransactionId; if (long.TryParse(response.getBankTransactionId(), out bankTransactionId)) { payment.bankTransactionId = bankTransactionId; } int creditCardVerification; if (int.TryParse(response.getCreditCardVerificationResponse(), out creditCardVerification)) { payment.creditCardVerificationResponse = creditCardVerification; } #endregion return(payment); }