public async Task <bool> CreateSubscriptionAsync(string customerId, string customerName, string iban, PaymentMethod paymentMethod, string description, DateTime startDate, decimal amount, string interval, int?times, string webhookUrl) { var result = false; var mandateClient = GetMandateClient(); // Create "mandate" via Mollie to be able to create a customer subscription. // Mandates allow you to charge a customer’s credit card or bank account recurrently. var mandateRequest = new MandateRequest { ConsumerName = customerName, ConsumerAccount = iban, Method = paymentMethod }; MandateResponse mandateResponse = await mandateClient.CreateMandateAsync(customerId, mandateRequest); if (mandateResponse.Status == MandateStatus.Valid) { // Create your customer payment record here var mollieSettings = _configuration.GetSection("Mollie"); var currency = mollieSettings.GetValue <string>("DefaultCurrency"); var subscriptionRequest = new SubscriptionRequest { Amount = new Amount { Currency = currency, Value = amount.ToString() }, Description = description, StartDate = startDate, Method = paymentMethod, Interval = interval, // Interval to wait between charges like 1 month(s) or 14 days Times = times, // Total number of charges for the subscription to complete. Leave empty for an on-going subscription WebhookUrl = webhookUrl // The url that Mollie calls with the payment id when the payment status changes. }; var subscriptionClient = GetSubscriptionClient(); SubscriptionResponse subscriptionResponse = await subscriptionClient.CreateSubscriptionAsync(customerId, subscriptionRequest); if (subscriptionResponse.Status == SubscriptionStatus.Active) { // Update your customer payment record here with new subscription Id result = true; } } return(result); }
private MandateResponse CreateMandate(APIClient client) { var reference = BankAccountTester.CreateAccount(client, UserId); var mandate = new MandateRequest { BankAccount = reference, UrlReturn = "http://example.com/dummy/Mandate" }; var result = client.PostMandate(mandate, UserId); Assert.IsNotNull(result); Assert.Greater(result.Id, 0); Assert.AreEqual(reference.Id, result.BankAccount.Id); return(result); }
public async Task CanCreateMandate() { // We can only test this if there are customers ListResponse <CustomerResponse> customers = await fixture.CustomerClient.GetCustomerListAsync(); if (customers.TotalCount > 0) { // If: We create a new mandate request MandateRequest mandateRequest = new MandateRequest() { ConsumerAccount = "NL26ABNA0516682814", ConsumerName = "John Doe" }; // When: We send the mandate request MandateResponse mandateResponse = await fixture.MandateClient.CreateMandateAsync(customers.Data.First().Id, mandateRequest); // Then: Make sure we created a new mandate Assert.Equal(mandateRequest.ConsumerAccount, mandateResponse.Details.ConsumerAccount); Assert.Equal(mandateRequest.ConsumerName, mandateResponse.Details.ConsumerName); } }
public Task <MandateResponse> CreateMandateAsync(string customerId, MandateRequest request) => ClientService.PostAsync <MandateResponse>($"customers/{customerId}/mandates", request);
public async Task <MandateResponse> CreateMandateAsync(string customerId, MandateRequest request) { return(await this._mandateClient.CreateMandateAsync(customerId, request)); }
public MandateResponse PostMandate(MandateRequest mandate, string userId = null) { var uri = CreateUri(userId, mandates); return(PostAsync <MandateRequest, MandateResponse>(uri, mandate)); }
public async Task <MandateResponse> Create(string customerId) { MandateRequest mandateRequest = this.CreateDefaultMandateRequest(); return(await this._mandateClient.CreateMandateAsync(customerId, mandateRequest)); }
public async Task <MandateResponse> CreateMandateAsync(string customerId, MandateRequest request) { return(await this.PostAsync <MandateResponse>($"customers/{customerId}/mandates", request) .ConfigureAwait(false)); }
public Dictionary <string, object> RejectMandate([FromBody] MandateRequest MandateRequestData) { return(objRBLMandateRequest.RejectMandate(MandateRequestData)); }
public Dictionary <string, object> ProcessedMandateResponseShowRespons([FromBody] MandateRequest MandateRequestData) { return(objRBLMandateRequest.ProcessedMandateResponseShowRespons(MandateRequestData)); }
public Dictionary <string, object> UpdateHeaderStatus([FromBody] MandateRequest MandateRequestData) { return(objRBLMandateRequest.UpdateHeaderStatus(MandateRequestData)); }
public Dictionary <string, object> UnderProcessDetails([FromBody] MandateRequest MandateRequestData) { return(objRBLMandateRequest.UnderProcessDetails(MandateRequestData)); }
public Dictionary <string, object> BindGrid([FromBody] MandateRequest MandateRequestData) { return(objRBLMandateRequest.BindGrid(MandateRequestData)); }