Example #1
0
        private AdvancedPayment Create(AdvancedPaymentCreateRequest request)
        {
            AdvancedPayment createdPayment;

            try
            {
                createdPayment = client.Create(request);
            }
            catch (MercadoPagoApiException ex)
            {
                if (ex.StatusCode == 422)
                {
                    Thread.Sleep(5000);
                    ResultsResourcesPage <AdvancedPayment> results =
                        SearchByExternalReference(request.ExternalReference);
                    createdPayment = results?.Results?.First();
                }
                else
                {
                    throw ex;
                }
            }

            return(createdPayment);
        }
Example #2
0
        private async Task <AdvancedPayment> CreateAsync(AdvancedPaymentCreateRequest request)
        {
            AdvancedPayment createdPayment;

            try
            {
                createdPayment = await client.CreateAsync(request);
            }
            catch (MercadoPagoApiException ex)
            {
                if (ex.StatusCode == 422)
                {
                    await Task.Delay(5000);

                    ResultsResourcesPage <AdvancedPayment> results =
                        await SearchByExternalReferenceAsync(request.ExternalReference);

                    createdPayment = results?.Results?.First();
                }
                else
                {
                    throw ex;
                }
            }

            return(createdPayment);
        }
Example #3
0
        public void Create_Approved_Success()
        {
            AdvancedPaymentCreateRequest request = BuildCreateRequest(true, "approved");
            AdvancedPayment advancedPayment      = Create(request);

            Assert.NotNull(advancedPayment);
            Assert.NotNull(advancedPayment.Id);
            Assert.True(advancedPayment.Capture);
            Assert.Equal(request.ExternalReference, advancedPayment.ExternalReference);
        }
Example #4
0
        public async Task CreateAsync_Approved_Success()
        {
            AdvancedPaymentCreateRequest request = await BuildCreateRequestAsync(true, "approved");

            AdvancedPayment advancedPayment = await CreateAsync(request);

            Assert.NotNull(advancedPayment);
            Assert.NotNull(advancedPayment.Id);
            Assert.True(advancedPayment.Capture);
            Assert.Equal(request.ExternalReference, advancedPayment.ExternalReference);
        }
Example #5
0
        public void UpdateRealeaseDate_AllDisbursements_Success()
        {
            AdvancedPaymentCreateRequest request = BuildCreateRequest(true, "approved");
            AdvancedPayment advancedPayment      = Create(request);

            Thread.Sleep(5000);

            advancedPayment = client.UpdateReleaseDate(
                advancedPayment.Id.GetValueOrDefault(), DateTime.Now.AddDays(1));

            Assert.NotNull(advancedPayment);
        }
Example #6
0
        public void Refund_Total_Success()
        {
            AdvancedPaymentCreateRequest request = BuildCreateRequest(true, "approved");
            AdvancedPayment createdPayment       = Create(request);

            Thread.Sleep(7000);

            ResourcesList <AdvancedPaymentDisbursementRefund> results =
                RefundTotal(createdPayment.Id.GetValueOrDefault());

            Assert.NotNull(results);
            Assert.True(results.Count == 2);
        }
Example #7
0
        public void Get_Success()
        {
            AdvancedPaymentCreateRequest request = BuildCreateRequest(true, "approved");
            AdvancedPayment createdPayment       = Create(request);

            Thread.Sleep(5000);

            // Gets the payment
            AdvancedPayment advancedPayment = Get(createdPayment.Id.GetValueOrDefault());

            Assert.NotNull(advancedPayment);
            Assert.Equal(createdPayment.Id, advancedPayment.Id);
        }
Example #8
0
        public async Task UpdateRealeaseDateAsync_AllDisbursements_Success()
        {
            AdvancedPaymentCreateRequest request = await BuildCreateRequestAsync(true, "approved");

            AdvancedPayment advancedPayment = await CreateAsync(request);

            await Task.Delay(5000);

            advancedPayment = await client.UpdateReleaseDateAsync(
                advancedPayment.Id.GetValueOrDefault(), DateTime.Now.AddDays(1));

            Assert.NotNull(advancedPayment);
        }
Example #9
0
        public async Task RefundAsync_Total_Success()
        {
            AdvancedPaymentCreateRequest request = await BuildCreateRequestAsync(true, "approved");

            AdvancedPayment createdPayment = await CreateAsync(request);

            await Task.Delay(7000);

            ResourcesList <AdvancedPaymentDisbursementRefund> results =
                await RefundTotalAsync(createdPayment.Id.GetValueOrDefault());

            Assert.NotNull(results);
            Assert.True(results.Count == 2);
        }
Example #10
0
        public async Task GetAsync_Success()
        {
            AdvancedPaymentCreateRequest request = await BuildCreateRequestAsync(true, "approved");

            AdvancedPayment createdPayment = await CreateAsync(request);

            await Task.Delay(5000);

            // Gets the payment
            AdvancedPayment advancedPayment = await GetAsync(createdPayment.Id.GetValueOrDefault());

            Assert.NotNull(advancedPayment);
            Assert.Equal(createdPayment.Id, advancedPayment.Id);
        }
Example #11
0
        public void Cancel_Pending_Success()
        {
            // Creates a pending advanced payment
            AdvancedPaymentCreateRequest request = BuildCreateRequest(true, "pending");
            AdvancedPayment advancedPayment      = Create(request);

            Thread.Sleep(5000);

            // Cancels the payment
            advancedPayment = client.Cancel(advancedPayment.Id.GetValueOrDefault());

            Assert.NotNull(advancedPayment);
            Assert.Equal(AdvancedPaymentStatus.Cancelled, advancedPayment.Status);
        }
Example #12
0
        public async Task CancelAsync_Pending_Success()
        {
            // Creates a pending advanced payment
            AdvancedPaymentCreateRequest request = await BuildCreateRequestAsync(true, "pending");

            AdvancedPayment advancedPayment = await CreateAsync(request);

            await Task.Delay(5000);

            // Cancels the payment
            advancedPayment = await client.CancelAsync(advancedPayment.Id.GetValueOrDefault());

            Assert.NotNull(advancedPayment);
            Assert.Equal(AdvancedPaymentStatus.Cancelled, advancedPayment.Status);
        }
Example #13
0
        public void Search_ByExternalReference_Success()
        {
            AdvancedPaymentCreateRequest request = BuildCreateRequest(true, "approved");
            AdvancedPayment createdPayment       = Create(request);

            Thread.Sleep(5000);

            ResultsResourcesPage <AdvancedPayment> results =
                SearchByExternalReference(createdPayment.ExternalReference);

            Assert.NotNull(results);
            Assert.NotNull(results.Paging);
            Assert.Equal(1, results.Paging.Total);
            Assert.NotNull(results.Results);
            Assert.Equal(createdPayment.Id, results.Results.First().Id);
        }
Example #14
0
        public void Capture_Pending_Success()
        {
            AdvancedPaymentCreateRequest request = BuildCreateRequest(false, "approved");
            AdvancedPayment advancedPayment      = Create(request);

            Assert.NotNull(advancedPayment);
            Assert.Equal(AdvancedPaymentStatus.Authorized, advancedPayment.Status);

            Thread.Sleep(7000);

            // Captures the payment
            advancedPayment = Capture(advancedPayment.Id.GetValueOrDefault());

            Assert.NotNull(advancedPayment);
            Assert.Equal(AdvancedPaymentStatus.Approved, advancedPayment.Status);
        }
Example #15
0
        public async Task SearchAsync_ByExternalReference_Success()
        {
            AdvancedPaymentCreateRequest request = await BuildCreateRequestAsync(true, "approved");

            AdvancedPayment createdPayment = await CreateAsync(request);

            await Task.Delay(5000);

            ResultsResourcesPage <AdvancedPayment> results =
                await SearchByExternalReferenceAsync(createdPayment.ExternalReference);

            Assert.NotNull(results);
            Assert.NotNull(results.Paging);
            Assert.Equal(1, results.Paging.Total);
            Assert.NotNull(results.Results);
            Assert.Equal(createdPayment.Id, results.Results.First().Id);
        }
Example #16
0
        public async Task CaptureAsync_Pending_Success()
        {
            AdvancedPaymentCreateRequest request = await BuildCreateRequestAsync(false, "approved");

            AdvancedPayment advancedPayment = await CreateAsync(request);

            Assert.NotNull(advancedPayment);
            Assert.Equal(AdvancedPaymentStatus.Authorized, advancedPayment.Status);

            await Task.Delay(7000);

            // Captures the payment
            advancedPayment = await CaptureAsync(advancedPayment.Id.GetValueOrDefault());

            Assert.NotNull(advancedPayment);
            Assert.Equal(AdvancedPaymentStatus.Approved, advancedPayment.Status);
        }