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); }
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); }
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}"); }
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)); }
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); }
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); }
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); }
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); }
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); }