Пример #1
0
        public async Task SuccessfulPayment()
        {
            await AddTriggeredPayment();

            try
            {
                var triggerRequest = new TriggerPaymentRequest {
                    ClientId = ClientId
                };

                var triggerResponse = await Client.TriggerPaymentAsync(triggerRequest);
                Assert.AreEqual(true, triggerResponse.Successful);
                Assert.AreEqual(3000, triggerResponse.Amount);
                Assert.AreEqual("444433...111", triggerResponse.CreditCard.TruncatedCardNumber);
                Assert.IsNotNull(triggerResponse.Receipt);
                Assert.IsNotNull(triggerResponse.PoNum);
                Assert.AreEqual("Visa", triggerResponse.CreditCard.CardDescription);
            }
            catch
            {
                LogMessages();
                throw;
            }

            await DeleteTriggeredPayment();
        }
Пример #2
0
        public async Task InsufficientFunds()
        {
            PaymentAmount = 3051;
            await AddTriggeredPayment();

            try
            {
                var triggerRequest = new TriggerPaymentRequest
                {
                    ClientId = ClientId,
                };

                var triggerResponse = await Client.TriggerPaymentAsync(triggerRequest);
                Assert.AreEqual(false, triggerResponse.Successful);
                Assert.AreEqual(PaymentAmount, triggerResponse.Amount);
                Assert.AreEqual("444433...111", triggerResponse.CreditCard.TruncatedCardNumber);
                Assert.AreEqual("51", triggerResponse.ResponseCode);
                Assert.AreEqual("Insufficient Funds", triggerResponse.ResponseText);
            }
            catch
            {
                LogMessages();
                throw;
            }

            await DeleteTriggeredPayment();
        }
Пример #3
0
        public async Task<TriggerPaymentResponse> TriggerPaymentAsync(TriggerPaymentRequest request)
        {
            var requestMessage = new PeriodicRequestMessage();
            var periodicItem = requestMessage.Periodic.PeriodicList.PeriodicItem;
            periodicItem.ActionType = "trigger";
            periodicItem.ClientId = request.ClientId;

            var responseMessage = await PostAsync<PeriodicRequestMessage, PeriodicResponseMessage>(requestMessage);
            periodicItem = responseMessage.Periodic.PeriodicList.PeriodicItem;

            var response = new TriggerPaymentResponse
            {
                Successful = periodicItem.Successful == "yes",
                ResponseCode = periodicItem.ResponseCode,
                ResponseText = periodicItem.ResponseText,
                Amount =  periodicItem.Amount ?? 0,
                Currency = periodicItem.Currency,
                TransactionId = periodicItem.TransactionId,
                Receipt = periodicItem.Receipt,
                PoNum = periodicItem.PoNum,
                SettlementDate = DateUtils.ParseYyyymmdd(periodicItem.SettlementDate),
            };

            if (periodicItem.CreditCardInfo != null)
            {
                response.CreditCard = new CreditCardResponse {
                    CardDescription = periodicItem.CreditCardInfo.CardDescription,
                    Expires = new YearMonth(periodicItem.CreditCardInfo.ExpiryDate),
                    TruncatedCardNumber = periodicItem.CreditCardInfo.TruncatedCreditCardNumber,
                };
            }

            return response;
        }