Exemplo n.º 1
0
        public async Task <PaymentConfirmationResponse> SubmitPaymentAsync(string accessToken,
                                                                           AchPaymentRequest achPayment, CancellationToken cancellationToken = default)
        {
            var requestBody = JsonSerializer.Serialize(achPayment, SerializerSettings);

            return(await SubmitPaymentRequest(accessToken, requestBody, "payments/ach", cancellationToken)
                   .ConfigureAwait(false));
        }
        public void SubmitPayment_ReturnsConfirmationNumber_WithValidAchPayment()
        {
            var accountTokenResponse = TestHelpers.GetAccountToken(_accessToken, _loanPayClient);
            var routingTokenResponse = TestHelpers.GetRoutingToken(_accessToken, _loanPayClient);

            var achPayment = new AchPaymentRequest
            {
                BankNumber     = TestHelpers.BankNumber,
                CompanyNumber  = TestHelpers.CompanyNumber,
                AccountNumber  = "123-123",
                Amount         = 12.34m,
                ConvenienceFee = 2.65m,
                PaymentMethod  = new AchPaymentMethod
                {
                    AccountToken = accountTokenResponse.PaymentInformationToken.Token,
                    RoutingToken = routingTokenResponse.PaymentInformationToken.Token,
                    AccountType  = BankAccountType.Checking
                },
                Contact = new ContactInfo
                {
                    Name    = "Test Name",
                    Phone   = "(123) 456-7890",
                    Email   = "*****@*****.**",
                    Address = "1039 3 Mile Rd NW",
                    City    = "Walker",
                    State   = "MI",
                    Zip     = "49544"
                },
                ProcessDate      = DateTime.Now.AddDays(2),
                SessionTimeStamp = DateTime.Now
            };

            var actual = _loanPayClient.LoanPayApi.SubmitPaymentAsync(_accessToken, achPayment, CancellationToken.None)
                         .ConfigureAwait(false)
                         .GetAwaiter()
                         .GetResult();

            if (actual.IsError)
            {
                _testOutputHelper.WriteLine(actual.Error);
            }

            Assert.False(actual.IsError);

            // We have a confirmation number!
            Assert.NotEmpty(actual.Confirmation.ConfirmationNumber);
        }