示例#1
0
        public void TestRefundTxnValidation()
        {
            var message = new PaymentRequestMessage <RefundRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(false));

            message.Payment.TxnList.Txn.Amount                = 1;
            message.Payment.TxnList.Txn.PurchaseId            = Guid.NewGuid();
            message.Payment.TxnList.Txn.ExternalTransactionId = Guid.NewGuid().ToString();

            AssertValidationErrors(message.GetValidationErrors());

            // Amount.

            message.Payment.TxnList.Txn.Amount = 0;
            AssertValidationErrors(message.GetValidationErrors(), new NumericMinimumValueValidationError("Amount", 1));

            message.Payment.TxnList.Txn.Amount = int.MaxValue;
            AssertValidationErrors(message.GetValidationErrors());

            // PurchaseId.

            message.Payment.TxnList.Txn.PurchaseId = Guid.Empty;
            AssertValidationErrors(message.GetValidationErrors(), new IsSetValidationError("PurchaseId"));
            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();

            // ExternalTransactionId.

            message.Payment.TxnList.Txn.ExternalTransactionId = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("ExternalTransactionId"));
            message.Payment.TxnList.Txn.ExternalTransactionId = Guid.NewGuid().ToString();
        }
        public void TestRefundMessage()
        {
            // Request.

            var paymentRequestMessage = new PaymentRequestMessage <StandardPaymentRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(false));

            paymentRequestMessage.Payment.TxnList.Txn.Amount     = 100;
            paymentRequestMessage.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();
            paymentRequestMessage.Payment.TxnList.Txn.CreditCardInfo.CardNumber = CardNumber;
            paymentRequestMessage.Payment.TxnList.Txn.CreditCardInfo.Cvv        = Cvv;
            paymentRequestMessage.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = ExpiryDate;
            paymentRequestMessage.Prepare();

            // Response.

            var paymentResponseMessage = GetCommand().Send <StandardPaymentRequestTxn, StandardPaymentResponseTxn>(paymentRequestMessage);

            // Request.

            var requestMessage = new PaymentRequestMessage <RefundRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(false));

            requestMessage.Payment.TxnList.Txn.Amount                = paymentResponseMessage.Payment.TxnList.Txn.Amount;
            requestMessage.Payment.TxnList.Txn.PurchaseId            = paymentResponseMessage.Payment.TxnList.Txn.PurchaseId;
            requestMessage.Payment.TxnList.Txn.ExternalTransactionId = paymentResponseMessage.Payment.TxnList.Txn.ExternalTransactionId;
            requestMessage.Prepare();

            // Response.

            var responseMessage = GetCommand().Send <RefundRequestTxn, RefundResponseTxn>(requestMessage);

            // Check.

            AssertResponse(responseMessage);
            AssertRequestResponse(paymentRequestMessage, paymentResponseMessage, requestMessage, responseMessage);
        }
示例#3
0
        private PaymentRequestMessage <AntiFraudPaymentRequestTxn> CreateRequestMessage()
        {
            var message = new PaymentRequestMessage <AntiFraudPaymentRequestTxn>
            {
                MerchantInfo =
                {
                    MerchantId = _merchantId,
                    Password   = _password
                }
            };

            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();
            message.Payment.TxnList.Txn.Amount     = 37620;
            message.Payment.TxnList.Txn.Currency   = Domain.Currency.AUD;

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = AustralianCreditCardNumber;
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv        = "123";
            message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = new ExpiryDate(DateTime.Now.AddYears(2));

            message.Payment.TxnList.Txn.BuyerInfo.Ip              = AustralianIpAddress;
            message.Payment.TxnList.Txn.BuyerInfo.EmailAddress    = EmailAddress;
            message.Payment.TxnList.Txn.BuyerInfo.BillingCountry  = Country;
            message.Payment.TxnList.Txn.BuyerInfo.DeliveryCountry = Country;

            message.Prepare();
            message.Validate();

            return(message);
        }
示例#4
0
        private async Task ProcessPayments(ProcessMessageEventArgs args)
        {
            var message = args.Message;
            var body    = Encoding.UTF8.GetString(message.Body);

            PaymentRequestMessage paymentRequestMessage = JsonConvert.DeserializeObject <PaymentRequestMessage>(body);

            var result = _processPayment.PaymentProcessor();

            UpdatePaymentResultMessage updatePaymentResultMessage = new()
            {
                Status  = result,
                OrderId = paymentRequestMessage.OrderId,
                Email   = paymentRequestMessage.Email
            };


            try
            {
                await _messageBus.PublishMessage(updatePaymentResultMessage, orderupdatepaymentresulttopic);

                await args.CompleteMessageAsync(args.Message);
            }
            catch (Exception e)
            {
                throw;
            }
        }
    }
示例#5
0
        public void TestStandardPaymentTxnValidation()
        {
            var message = new PaymentRequestMessage <StandardPaymentRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(false));

            message.Payment.TxnList.Txn.Amount     = 1;
            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();
            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = CardNumber;
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv        = Cvv;
            message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = ExpiryDate;

            AssertValidationErrors(message.GetValidationErrors());

            // Amount.

            message.Payment.TxnList.Txn.Amount = 0;
            AssertValidationErrors(message.GetValidationErrors(), new NumericMinimumValueValidationError("Amount", 1));

            message.Payment.TxnList.Txn.Amount = int.MaxValue;
            AssertValidationErrors(message.GetValidationErrors());

            // PurchaseId

            message.Payment.TxnList.Txn.PurchaseId = Guid.Empty;
            AssertValidationErrors(message.GetValidationErrors(), new IsSetValidationError("PurchaseId"));
            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();

            // CardNumber.

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("CardNumber"));

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = "abcdefghijklm";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("CardNumber", 13, 16));

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = "1234";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("CardNumber", 13, 16));

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = "1234567890123456789";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("CardNumber", 13, 16));
            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = CardNumber;

            // Cvv.

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("Cvv"));

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = "abc";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("Cvv", 3, 4));

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = "12";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("Cvv", 3, 4));

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = "1234567";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("Cvv", 3, 4));
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = Cvv;
        }
        private static void AssertRequestResponse(PaymentRequestMessage <StandardPaymentRequestTxn> requestMessage, PaymentResponseMessage <StandardPaymentResponseTxn> responseMessage)
        {
            AssertRequestResponse((RequestMessage)requestMessage, responseMessage);

            Assert.AreEqual(requestMessage.MerchantInfo.MerchantId, responseMessage.MerchantInfo.MerchantId);

            Assert.AreEqual(requestMessage.Payment.TxnList.Txn.Amount, responseMessage.Payment.TxnList.Txn.Amount);
            Assert.AreEqual(requestMessage.Payment.TxnList.Txn.Currency, responseMessage.Payment.TxnList.Txn.Currency);
            Assert.AreEqual(requestMessage.Payment.TxnList.Txn.PurchaseId, responseMessage.Payment.TxnList.Txn.PurchaseId);

            Assert.AreEqual(requestMessage.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate, responseMessage.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate);
        }
示例#7
0
        public void TestRefundTxnDefaults()
        {
            var message = new PaymentRequestMessage <RefundRequestTxn>();

            Assert.AreEqual(0, message.Payment.TxnList.Txn.Amount);
            Assert.AreEqual(Guid.Empty, message.Payment.TxnList.Txn.PurchaseId);
            Assert.IsNull(message.Payment.TxnList.Txn.ExternalTransactionId);

            message.Prepare();
            Assert.AreEqual(0, message.Payment.TxnList.Txn.Amount);
            Assert.AreEqual(Guid.Empty, message.Payment.TxnList.Txn.PurchaseId);
            Assert.IsNull(message.Payment.TxnList.Txn.ExternalTransactionId);
        }
        private static void AssertRequestResponse(PaymentRequestMessage <StandardPaymentRequestTxn> paymentRequestMessage, PaymentResponseMessage <StandardPaymentResponseTxn> paymentResponseMessage, PaymentRequestMessage <RefundRequestTxn> requestMessage, PaymentResponseMessage <RefundResponseTxn> responseMessage)
        {
            AssertRequestResponse(requestMessage, responseMessage);

            Assert.AreEqual(requestMessage.MerchantInfo.MerchantId, responseMessage.MerchantInfo.MerchantId);

            Assert.AreEqual(requestMessage.Payment.TxnList.Txn.Amount, responseMessage.Payment.TxnList.Txn.Amount);
            Assert.AreEqual(paymentRequestMessage.Payment.TxnList.Txn.Currency, responseMessage.Payment.TxnList.Txn.Currency);
            Assert.AreEqual(paymentResponseMessage.Payment.TxnList.Txn.ExternalTransactionId, responseMessage.Payment.TxnList.Txn.PaymentExternalTransactionId);

            Assert.AreEqual(paymentResponseMessage.Payment.TxnList.Txn.CreditCardInfo.Pan, responseMessage.Payment.TxnList.Txn.CreditCardInfo.Pan);
            Assert.AreEqual(paymentResponseMessage.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate, responseMessage.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate);
            Assert.AreEqual(paymentResponseMessage.Payment.TxnList.Txn.CreditCardInfo.CardType, responseMessage.Payment.TxnList.Txn.CreditCardInfo.CardType);
            Assert.AreEqual(paymentResponseMessage.Payment.TxnList.Txn.CreditCardInfo.CardDescription, responseMessage.Payment.TxnList.Txn.CreditCardInfo.CardDescription);
        }
示例#9
0
        public void TestSerializeRequestMessage()
        {
            // Serialize.

            var message = new PaymentRequestMessage <RefundRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(false));

            message.Payment.TxnList.Txn.Amount                = 1;
            message.Payment.TxnList.Txn.PurchaseId            = Guid.NewGuid();
            message.Payment.TxnList.Txn.ExternalTransactionId = Guid.NewGuid().ToString();

            message.Prepare();
            message.Validate();
            var serializedMessage = Serialization.Serialize(message);

            // Check.

            AssertRequestMessage(message, serializedMessage);
        }
示例#10
0
        protected override Task ExecuteAsync(CancellationToken stoppingToken)
        {
            stoppingToken.ThrowIfCancellationRequested();

            var consumer = new EventingBasicConsumer(_channel);

            consumer.Received += (ch, ea) =>
            {
                var content = Encoding.UTF8.GetString(ea.Body.ToArray());
                PaymentRequestMessage paymentRequestMessage = JsonConvert.DeserializeObject <PaymentRequestMessage>(content);
                HandleMessage(paymentRequestMessage).GetAwaiter().GetResult();

                _channel.BasicAck(ea.DeliveryTag, false);
            };
            _channel.BasicConsume("orderpaymentprocesstopic", false, consumer);

            return(Task.CompletedTask);
        }
示例#11
0
        public void TestStandardPaymentTxnDefaults()
        {
            var message = new PaymentRequestMessage <StandardPaymentRequestTxn>();

            Assert.AreEqual(0, message.Payment.TxnList.Txn.Amount);
            Assert.AreEqual(Currency.AUD, message.Payment.TxnList.Txn.Currency);
            Assert.AreEqual(Guid.Empty, message.Payment.TxnList.Txn.PurchaseId);
            Assert.IsNull(message.Payment.TxnList.Txn.CreditCardInfo.CardNumber);
            Assert.IsNull(message.Payment.TxnList.Txn.CreditCardInfo.Cvv);
            Assert.AreEqual(ExpiryDate.MinValue, message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate);

            message.Prepare();
            Assert.AreEqual(0, message.Payment.TxnList.Txn.Amount);
            Assert.AreEqual(Currency.AUD, message.Payment.TxnList.Txn.Currency);
            Assert.AreEqual(Guid.Empty, message.Payment.TxnList.Txn.PurchaseId);
            Assert.IsNull(message.Payment.TxnList.Txn.CreditCardInfo.CardNumber);
            Assert.IsNull(message.Payment.TxnList.Txn.CreditCardInfo.Cvv);
            Assert.AreEqual(ExpiryDate.MinValue, message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate);
        }
示例#12
0
        public void TestSerializeRequestMessage()
        {
            // Serialize.

            var message = new PaymentRequestMessage <StandardPaymentRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(false));

            message.Payment.TxnList.Txn.Amount     = 1;
            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();
            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = CardNumber;
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv        = Cvv;
            message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = ExpiryDate;

            message.Prepare();
            message.Validate();
            var serializedMessage = Serialization.Serialize(message);

            // Check.

            AssertRequestMessage(message, serializedMessage);
        }
示例#13
0
        private async Task HandleMessage(PaymentRequestMessage paymentRequestMessage)
        {
            var result = _processPayment.PaymentProcessor();

            UpdatePaymentResultMessage updatePaymentResultMessage = new()
            {
                Status  = result,
                OrderId = paymentRequestMessage.OrderId,
                Email   = paymentRequestMessage.Email
            };


            try
            {
                _rabbitMQPaymentMessageSender.SendMessage(updatePaymentResultMessage);
                // await _messageBus.PublishMessage(updatePaymentResultMessage, orderupdatepaymentresulttopic);
                // await args.CompleteMessageAsync(args.Message);
            }
            catch (Exception e)
            {
                throw;
            }
        }
    }
示例#14
0
        public void TestSerializeRequestMessage()
        {
            // Serialize.

            var message = new PaymentRequestMessage <AntiFraudPaymentRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(true));

            message.Payment.TxnList.Txn.Amount     = 1;
            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();
            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = CardNumber;
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv        = Cvv;
            message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = ExpiryDate;
            message.Payment.TxnList.Txn.BuyerInfo.Ip              = IpAddress;
            message.Payment.TxnList.Txn.BuyerInfo.EmailAddress    = EmailAddress;
            message.Payment.TxnList.Txn.BuyerInfo.BillingCountry  = Country;
            message.Payment.TxnList.Txn.BuyerInfo.DeliveryCountry = Country;

            message.Prepare();
            message.Validate();
            var serializedMessage = Serialization.Serialize(message);

            // Check.

            AssertRequestMessage(message, serializedMessage);
        }
示例#15
0
        private PaymentRequestMessage <StandardPaymentRequestTxn> CreateRequestMessage()
        {
            var message = new PaymentRequestMessage <StandardPaymentRequestTxn>
            {
                MerchantInfo =
                {
                    MerchantId = _merchantId,
                    Password   = _password
                }
            };

            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();
            message.Payment.TxnList.Txn.Amount     = 37620;
            message.Payment.TxnList.Txn.Currency   = Domain.Currency.AUD;

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = "4444333322221111";
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv        = "123";
            message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = new ExpiryDate(DateTime.Now.AddYears(2));

            message.Prepare();
            message.Validate();

            return(message);
        }
示例#16
0
 private static PaymentResponseMessage <AntiFraudPaymentResponseTxn> GetAntiFraudResponseMessage(PaymentRequestMessage <AntiFraudPaymentRequestTxn> requestMessage, PaymentResponseMessage <AntiFraudPaymentResponseTxn> responseMessage)
 {
     responseMessage.Payment.TxnList.Txn.Amount     = requestMessage.Payment.TxnList.Txn.Amount;
     responseMessage.Payment.TxnList.Txn.Currency   = requestMessage.Payment.TxnList.Txn.Currency;
     responseMessage.Payment.TxnList.Txn.PurchaseId = requestMessage.Payment.TxnList.Txn.PurchaseId;
     responseMessage.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = requestMessage.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate;
     return(responseMessage);
 }
示例#17
0
 private static PaymentResponseMessage <TResponseTxn> GetResponseMessage <TRequestTxn, TResponseTxn>(PaymentRequestMessage <TRequestTxn> requestMessage, PaymentResponseMessage <TResponseTxn> responseMessage)
     where TRequestTxn : PaymentRequestTxn, new()
     where TResponseTxn : PaymentResponseTxn, new()
 {
     if (typeof(TRequestTxn) == typeof(StandardPaymentRequestTxn))
     {
         return(GetStandardResponseMessage(requestMessage as PaymentRequestMessage <StandardPaymentRequestTxn>, responseMessage as PaymentResponseMessage <StandardPaymentResponseTxn>) as PaymentResponseMessage <TResponseTxn>);
     }
     if (typeof(TRequestTxn) == typeof(AntiFraudPaymentRequestTxn))
     {
         return(GetAntiFraudResponseMessage(requestMessage as PaymentRequestMessage <AntiFraudPaymentRequestTxn>, responseMessage as PaymentResponseMessage <AntiFraudPaymentResponseTxn>) as PaymentResponseMessage <TResponseTxn>);
     }
     return(null);
 }
示例#18
0
        PaymentResponseMessage <TResponseTxn> ISendSecurePayCommand.Send <TRequestTxn, TResponseTxn>(PaymentRequestMessage <TRequestTxn> requestMessage)
        {
            if (Url != null)
            {
                throw new WebException("The remote name could not be resolved: '" + (Url.StartsWith("http://") ? Url.Substring("http://".Length) : Url) + "'");
            }

            if (StatusCode != null)
            {
                return(GetInvalidStatusMessage <TResponseTxn>());
            }

            if (ResponseCode != null)
            {
                return(GetNotApprovedMessage <TRequestTxn, TResponseTxn>(requestMessage));
            }

            if (FraudFailure != FraudFailure.None)
            {
                return(GetFraudMessage(requestMessage as PaymentRequestMessage <AntiFraudPaymentRequestTxn>) as PaymentResponseMessage <TResponseTxn>);
            }

            return(GetResponseMessage(requestMessage, GetResponseMessage <TResponseTxn>(true, 0)));
        }
示例#19
0
 private PaymentResponseMessage <AntiFraudPaymentResponseTxn> GetFraudMessage(PaymentRequestMessage <AntiFraudPaymentRequestTxn> requestMessage)
 {
     return(GetResponseMessage(requestMessage, GetResponseMessage()));
 }
示例#20
0
 private PaymentResponseMessage <TResponseTxn> GetNotApprovedMessage <TRequestTxn, TResponseTxn>(PaymentRequestMessage <TRequestTxn> requestMessage)
     where TResponseTxn : PaymentResponseTxn, new()
     where TRequestTxn : PaymentRequestTxn, new()
 {
     return(GetResponseMessage(requestMessage, GetResponseMessage <TResponseTxn>(false, ResponseCode.Value)));
 }
示例#21
0
        public void TestAntiFraudPaymentTxnValidation()
        {
            var message = new PaymentRequestMessage <AntiFraudPaymentRequestTxn>(CreateMessageInfo(), CreateMerchantInfo(true));

            message.Payment.TxnList.Txn.Amount     = 1;
            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();
            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = CardNumber;
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv        = Cvv;
            message.Payment.TxnList.Txn.CreditCardInfo.ExpiryDate = ExpiryDate;
            message.Payment.TxnList.Txn.BuyerInfo.Ip              = IpAddress;
            message.Payment.TxnList.Txn.BuyerInfo.EmailAddress    = EmailAddress;
            message.Payment.TxnList.Txn.BuyerInfo.BillingCountry  = Country;
            message.Payment.TxnList.Txn.BuyerInfo.DeliveryCountry = Country;

            AssertValidationErrors(message.GetValidationErrors());

            // Amount.

            message.Payment.TxnList.Txn.Amount = 0;
            AssertValidationErrors(message.GetValidationErrors(), new NumericMinimumValueValidationError("Amount", 1));

            message.Payment.TxnList.Txn.Amount = int.MaxValue;
            AssertValidationErrors(message.GetValidationErrors());

            // PurchaseId

            message.Payment.TxnList.Txn.PurchaseId = Guid.Empty;
            AssertValidationErrors(message.GetValidationErrors(), new IsSetValidationError("PurchaseId"));
            message.Payment.TxnList.Txn.PurchaseId = Guid.NewGuid();

            // CardNumber.

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("CardNumber"));

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = "abcdefghijklm";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("CardNumber", 13, 16));

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = "1234";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("CardNumber", 13, 16));

            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = "1234567890123456789";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("CardNumber", 13, 16));
            message.Payment.TxnList.Txn.CreditCardInfo.CardNumber = CardNumber;

            // Cvv.

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("Cvv"));

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = "abc";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("Cvv", 3, 4));

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = "12";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("Cvv", 3, 4));

            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = "1234567";
            AssertValidationErrors(message.GetValidationErrors(), new NumericLengthRangeValidationError("Cvv", 3, 4));
            message.Payment.TxnList.Txn.CreditCardInfo.Cvv = Cvv;

            // IpAddress.

            message.Payment.TxnList.Txn.BuyerInfo.Ip = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("Ip"));
            message.Payment.TxnList.Txn.BuyerInfo.Ip = IpAddress;

            // EmailAddress.

            message.Payment.TxnList.Txn.BuyerInfo.EmailAddress = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("EmailAddress"));
            message.Payment.TxnList.Txn.BuyerInfo.EmailAddress = EmailAddress;

            // BillingCountry.

            message.Payment.TxnList.Txn.BuyerInfo.BillingCountry = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("BillingCountry"));
            message.Payment.TxnList.Txn.BuyerInfo.BillingCountry = Country;

            // DeliveryCountry.

            message.Payment.TxnList.Txn.BuyerInfo.DeliveryCountry = null;
            AssertValidationErrors(message.GetValidationErrors(), new RequiredValidationError("DeliveryCountry"));
            message.Payment.TxnList.Txn.BuyerInfo.DeliveryCountry = Country;
        }
示例#22
0
        private static void AssertRequestMessage(PaymentRequestMessage <StandardPaymentRequestTxn> message, string serializedMessage)
        {
            var expectedSerializedMessage = string.Format(RequestMessageFormat, message.MessageInfo.MessageId, message.MessageInfo.MessageTimestamp, message.Payment.TxnList.Txn.Amount, message.Payment.TxnList.Txn.PurchaseId);

            Assert.AreEqual(expectedSerializedMessage, serializedMessage);
        }