示例#1
0
        public static bool TestClient(CmtPaymentSettings serverPaymentSettings, string number, DateTime date, ILogger logger)
        {
            var cmtPaymentServiceClient = new CmtPaymentServiceClient(serverPaymentSettings, null, null, logger, null);
            var result = TokenizeSyncForSettingsTest(cmtPaymentServiceClient, number, date);

            return(result.IsSuccessful);
        }
示例#2
0
        public CmtPaymentClient(string baseUrl, string sessionId, CmtPaymentSettings cmtSettings, IIPAddressManager ipAddressManager, IPackageInfo packageInfo, ILogger logger, IConnectivityService connectivityService)
            : base(baseUrl, sessionId, packageInfo, connectivityService)
        {
            _ipAddressManager = ipAddressManager;
            _logger           = logger;

            CmtPaymentServiceClient = new CmtPaymentServiceClient(cmtSettings, null, packageInfo, logger, connectivityService);
        }
示例#3
0
        private static TokenizedCreditCardResponse TokenizeSyncForSettingsTest(CmtPaymentServiceClient cmtPaymentServiceClient, string accountNumber, DateTime expiryDate)
        {
            try
            {
                var response = cmtPaymentServiceClient.PostAsync(new TokenizeRequest
                {
                    AccountNumber = accountNumber,
                    ExpiryDate    = expiryDate.ToString("yyMM", CultureInfo.InvariantCulture),
                    ValidateAccountInformation = false
                });

                response.Wait();

                return(new TokenizedCreditCardResponse
                {
                    CardOnFileToken = response.Result.CardOnFileToken,
                    IsSuccessful = response.Result.ResponseCode == 1,
                    Message = response.Result.ResponseMessage,
                    CardType = response.Result.CardType,
                    LastFour = response.Result.LastFour
                });
            }
            catch (Exception e)
            {
                var message   = e.Message;
                var exception = e as AggregateException;
                if (exception != null)
                {
                    message = exception.InnerException.Message;
                }

                return(new TokenizedCreditCardResponse
                {
                    IsSuccessful = false,
                    Message = message
                });
            }
        }
示例#4
0
 private void InitializeServiceClient()
 {
     _cmtPaymentServiceClient  = new CmtPaymentServiceClient(_serverPaymentSettings.CmtPaymentSettings, null, null, _logger, null);
     _cmtMobileServiceClient   = new CmtMobileServiceClient(_serverPaymentSettings.CmtPaymentSettings, null, null, null);
     _cmtTripInfoServiceHelper = new CmtTripInfoServiceHelper(_cmtMobileServiceClient, _logger);
 }
示例#5
0
        private async Task <TokenizedCreditCardResponse> Tokenize(CmtPaymentServiceClient cmtPaymentServiceClient, string nameOnCard,
                                                                  string accountNumber, DateTime expiryDate, string cvv, string kountSessionId, string zipCode, Account account)
        {
            try
            {
                var request = new TokenizeRequest
                {
                    AccountNumber     = accountNumber,
                    ExpiryDate        = expiryDate.ToString("yyMM", CultureInfo.InvariantCulture),
                    Cvv               = cvv,
                    SessionId         = kountSessionId,
                    Email             = account.Email,
                    BillingFullName   = nameOnCard,
                    CustomerId        = account.Id.ToString(),
                    CustomerIpAddress = _ipAddressManager.GetIPAddress()
                };

                if (zipCode.HasValue())
                {
                    request.ZipCode = zipCode;
                }

                var response = await cmtPaymentServiceClient.PostAsync(request);

                return(new TokenizedCreditCardResponse
                {
                    CardOnFileToken = response.CardOnFileToken,
                    IsSuccessful = response.ResponseCode == 1,
                    Message = response.ResponseMessage,
                    CardType = response.CardType,
                    LastFour = response.LastFour,
                });
            }
            catch (Exception e)
            {
                _logger.Maybe(x => x.LogMessage("Error during CMT tokenization"));

                var message = GetTokenizationErrorMessageFromCMT(e);
                if (message.HasValueTrimmed())
                {
                    return(new TokenizedCreditCardResponse
                    {
                        IsSuccessful = false,
                        Message = message
                    });
                }

                // the exception is not a cmt error, log the exception
                _logger.Maybe(x => x.LogError(e));

                message = e.Message;
                var exception = e as AggregateException;
                if (exception != null)
                {
                    message = exception.InnerException.Message;
                }

                return(new TokenizedCreditCardResponse
                {
                    IsSuccessful = false,
                    Message = message
                });
            }
        }