Esempio n. 1
0
        public void CanCreateDefaultPaymentWithAllFields()
        {
            // If: we create a payment request where all parameters have a value
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = 100,
                Description = "Description",
                RedirectUrl = this.DefaultRedirectUrl,
                Locale = Locale.NL,
                Metadata = @"{""firstName"":""John"",""lastName"":""Doe""}",
                Method = PaymentMethod.BankTransfer,
                WebhookUrl = this.DefaultWebhookUrl
            };

            // When: We send the payment request to Mollie
            PaymentResponse result = this._mollieClient.CreatePaymentAsync(paymentRequest).Result;

            // Then: Make sure all requested parameters match the response parameter values
            Assert.IsNotNull(result);
            Assert.AreEqual(paymentRequest.Amount, result.Amount);
            Assert.AreEqual(paymentRequest.Description, result.Description);
            Assert.AreEqual(paymentRequest.RedirectUrl, result.Links.RedirectUrl);
            Assert.AreEqual(paymentRequest.Locale, result.Locale);
            Assert.AreEqual(paymentRequest.Metadata, result.Metadata);
            Assert.AreEqual(paymentRequest.WebhookUrl, result.Links.WebhookUrl);
        }
Esempio n. 2
0
        public async Task<ActionResult> Create(PaymentRequestModel paymentRequestModel) {
            if (this.ModelState.IsValid) {
                PaymentRequest paymentRequest = new PaymentRequest();
                paymentRequest.Amount = paymentRequestModel.Amount;
                paymentRequest.Description = paymentRequestModel.Description;
                paymentRequest.RedirectUrl = paymentRequestModel.RedirectUrl;
                await this._mollieClient.CreatePaymentAsync(paymentRequest);

                return this.RedirectToAction("Index");
            }

            return this.View(paymentRequestModel);
        }
Esempio n. 3
0
        static void OutputNewPayment(MollieClient mollieClient)
        {
            Console.WriteLine("Creating a payment");
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = 100,
                Description = "Test payment of the example project",
                RedirectUrl = "http://google.com"
            };

            PaymentResponse paymentResponse = mollieClient.CreatePaymentAsync(paymentRequest).Result;
            Console.WriteLine("Payment created");
            Console.WriteLine("");
            Console.WriteLine($"Payment can be paid on the following URL: {paymentResponse.Links.PaymentUrl}");
        }
Esempio n. 4
0
        public void ShouldThrowMollieApiExceptionWhenInvalidParametersAreGiven()
        {
            // If: we create a payment request with invalid parameters
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = -100,
                Description = null,
                RedirectUrl = null
            };

            // Then: Send the payment request to the Mollie Api, this should throw a mollie api exception
            AggregateException aggregateException = Assert.Throws<AggregateException>(() => this._mollieClient.CreatePaymentAsync(paymentRequest).Wait());
            MollieApiException mollieApiException = aggregateException.InnerExceptions.FirstOrDefault(x => x.GetType() == typeof(MollieApiException)) as MollieApiException;
            Assert.IsNotNull(mollieApiException);
            Assert.IsNotNull(mollieApiException.Details);
            Assert.True(!String.IsNullOrEmpty(mollieApiException.Details.Message));
        }
Esempio n. 5
0
        public void CanCreateDefaultPaymentWithOnlyRequiredFields()
        {
            // If: we create a payment request with only the required parameters
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = 100,
                Description = "Description",
                RedirectUrl = this.DefaultRedirectUrl
            };

            // When: We send the payment request to Mollie
            PaymentResponse result = this._mollieClient.CreatePaymentAsync(paymentRequest).Result;

            // Then: Make sure we get a valid response
            Assert.IsNotNull(result);
            Assert.AreEqual(paymentRequest.Amount, result.Amount);
            Assert.AreEqual(paymentRequest.Description, result.Description);
            Assert.AreEqual(paymentRequest.RedirectUrl, result.Links.RedirectUrl);
        }
Esempio n. 6
0
        public void CanCreatePaymentAndRetrieveIt()
        {
            // If: we create a new payment request
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = 100,
                Description = "Description",
                RedirectUrl = this.DefaultRedirectUrl,
                Locale = Locale.DE
            };

            // When: We send the payment request to Mollie and attempt to retrieve it
            PaymentResponse paymentResponse = this._mollieClient.CreatePaymentAsync(paymentRequest).Result;
            PaymentResponse result = this._mollieClient.GetPaymentAsync(paymentResponse.Id).Result;

            // Then
            Assert.IsNotNull(result);
            Assert.AreEqual(paymentResponse.Id, result.Id);
            Assert.AreEqual(paymentResponse.Amount, result.Amount);
            Assert.AreEqual(paymentResponse.Description, result.Description);
            Assert.AreEqual(paymentResponse.Links.RedirectUrl, result.Links.RedirectUrl);
        }
Esempio n. 7
0
        public void CanCreatePaymentWithMandate()
        {
            // If: We create a payment with a mandate id
            MandateResponse validMandate = this.GetFirstValidMandate();
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = 100,
                Description = "Description",
                RedirectUrl = this.DefaultRedirectUrl,
                RecurringType = RecurringType.Recurring,
                CustomerId = validMandate.CustomerId,
                MandateId = validMandate.Id
            };

            // When: We send the payment request to Mollie
            PaymentResponse result = this._mollieClient.CreatePaymentAsync(paymentRequest).Result;

            // Then: Make sure we get the mandate id back in the details
            Assert.AreEqual(validMandate.Id, result.MandateId);
        }
Esempio n. 8
0
        public void CanCreateRecurringPaymentAndRetrieveIt()
        {
            // If: we create a new recurring payment
            string customerId = this.GetFirstValidMandate().CustomerId;
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = 100,
                Description = "Description",
                RedirectUrl = this.DefaultRedirectUrl,
                RecurringType = RecurringType.First,
                CustomerId = customerId
            };

            // When: We send the payment request to Mollie and attempt to retrieve it
            PaymentResponse paymentResponse = this._mollieClient.CreatePaymentAsync(paymentRequest).Result;
            PaymentResponse result = this._mollieClient.GetPaymentAsync(paymentResponse.Id).Result;

            // Then: Make sure the recurringtype parameter is entered
            Assert.AreEqual(RecurringType.First, result.RecurringType);
        }
Esempio n. 9
0
        public void CanCreatePaymentWithMetaData()
        {
            // If: We create a payment with meta data
            string json = "{\"order_id\":\"4.40\"}";
            PaymentRequest paymentRequest = new PaymentRequest() {
                Amount = 100,
                Description = "Description",
                RedirectUrl = this.DefaultRedirectUrl,
                Metadata = json
            };

            // When: We send the payment request to Mollie
            PaymentResponse result = this._mollieClient.CreatePaymentAsync(paymentRequest).Result;

            // Then: Make sure we get the same json result as metadata
            Assert.AreEqual(json, result.Metadata);
        }