Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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.");
            }
        }
Exemplo n.º 3
0
        /// <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));
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }